Embedded Software Tooling Developer
">
This role involves providing technical leadership across various domains, including debug, profiling, middleware integration, system config, command-line tooling, and toolchain integration.
">
You will assist in helping to give embedded software engineers the modern tools they need to solve problems efficiently and effectively. You'll join an existing cross-functional team of engineers and designers with an aim to significantly move the bar on the embedded software development experience.
">
The ideal candidate should have significant experience designing, developing, debugging, maintaining complex, real-time heterogeneous embedded software solutions in C, C++, and/or assembly (Arm, RISC-V, etc.). They should be familiar with available open source and commercial debug and instrumentation tools, and have defensible positions on their pros, cons, and gaps.
">
You'll collaborate with hardware IP owners to define requirements and models for various peripherals and system designs. Keeping up with the latest advancements in relevant programming languages, embedded tooling, and open source ecosystems is essential. You'll also help identify gaps and define a plan to fill them in current developer tooling, middleware, and technical documentation.
">
The responsibilities include disseminating in-depth knowledge of software development tools, and embedded software development within the company. You'll handle multiple projects, oversee deliverables using appropriate project management methodologies, establish metrics and processes for monitoring tooling health, and allow for continuous improvements.
">
Your experience should include at least 10 years of embedded software development experience in C, with the ability to understand differences between various C versions, standard library implementations, and GCC, IAR, and armclang compiler flags commonly used in embedded systems.
">
You'll be working with a team of skilled professionals to shape the future of embedded software development. The successful candidate will be detail-oriented, have excellent written and communication skills in English, and be comfortable stepping outside their comfort zone and cross technical boundaries.
">
Requirements:
">
">
* Significant experience designing, developing, debugging, maintaining complex, real-time heterogeneous embedded software solutions in C, C++, and/or assembly (Arm, RISC-V, etc.)
">
* Familiarity with available open source and commercial debug and instrumentation tools
">
* Defensible positions on pros, cons, and gaps of debug and instrumentation tools
">
* Collaboration with hardware IP owners to define requirements and models for various peripherals and system designs
">
* Keeping up with the latest advancements in relevant programming languages, embedded tooling, and open source ecosystems
">
* Helping to identify gaps and define a plan to fill them in current developer tooling, middleware, and technical documentation
">
* Disseminating in-depth knowledge of software development tools, and embedded software development within the company
">
* Handling multiple projects and overseeing deliverables using appropriate project management methodologies
">
* Establishing metrics and processes for monitoring tooling health, and allowing for continuous improvements
">
* At least 10 years of embedded software development experience in C
">
* Understanding differences between various C versions, standard library implementations, and GCC, IAR, and armclang compiler flags commonly used in embedded systems
">
* Excellent written and communication skills in English
">
* Comfortable stepping outside their comfort zone and cross technical boundaries
">
* Familiarity with task and defect tracking tools (Jira, etc.)
">
* A strong grasp of version control systems – Git, Github, etc.
">
* Willingness to learn and adapt to new technologies and tools
">
* Demonstrated extensive experience with static analysis tools
">
* Familiarity with best practices for the full software development process
">
* Strong fundamentals in data structures and algorithms
">
* Good understanding of testing methodologies like unit testing, functional testing, performance testing, and Integration testing
">
* Good understanding of system monitoring, observability, metrics, and logging
">
* Very strong grasp of version control systems – Git, Github, etc.
">
* Experience with Zephyr RTOS, IAR, and/or armclang
">
* Knowledge of Bluetooth Low Energy at the Host and/or Controller level
">
* Experience with audio codecs and audio processing
">
* Familiarity with Golang or Rust for command-line tooling
">
* Familiarity with Typescript or node.js
">
">
Key Responsibilities
">
1. Collaborate with hardware IP owners to define requirements and models for various peripherals and system designs.
">
2. Assist in helping to give embedded software engineers the modern tools they need to solve problems efficiently and effectively.
">
3. Join an existing cross-functional team of engineers and designers with an aim to significantly move the bar on the embedded software development experience.
">
4. Disseminate in-depth knowledge of software development tools, and embedded software development within the company.
">
5. Handle multiple projects and oversee deliverables using appropriate project management methodologies.
">
6. Establish metrics and processes for monitoring tooling health, and allow for continuous improvements.
">
About Us
">
We are looking for a highly skilled Embedded Software Tooling Developer to join our team. As a key member of our team, you will be responsible for shaping the future of embedded software development.
">
If you are a motivated and experienced professional with a passion for software development, we encourage you to apply for this exciting opportunity.
"],