Job Title: Principal Embedded Tooling Developer
Description:
You will be part of a best-in-class software development environment for firmware development on mixed-signal, heterogeneous embedded devices. Your goal is to provide embedded software engineers with modern tools to solve problems efficiently and effectively.
In this role, you will assist in providing technical leadership across various domains, including debug, profiling, middleware integration, system config, command-line tooling, toolchain integration, and other related fields.
Responsibilities:
* Ensure deliverables result in a meaningful developer and debug tooling experience.
* Collaborate with hardware IP owners to define requirements and models for peripherals and system designs.
* Stay up-to-date with the latest advancements in programming languages, embedded tooling, and open-source ecosystems.
* Identify gaps in current developer tooling, middleware, and technical documentation and define a plan to fill them.
* Disseminate knowledge of software development tools and embedded software development within the company.
* Manage multiple projects and oversee deliverables using project management methodologies.
* Establish metrics and processes for monitoring tooling health and allowing for continuous improvements.
Requirements:
* 10+ years of experience designing, developing, debugging, and maintaining complex real-time heterogeneous embedded software solutions in C, C++, and/or assembly (Arm, RISC-V, etc.).
* Familiarity with modern embedded software development best practices, including source management, code hygiene, build infrastructure management, and testing frameworks.
* Experience with available open-source and commercial debug and instrumentation tools.
* Strong grasp of version control systems – Git, GitHub, etc., and task and defect tracking tools (Jira, etc.).
* Excellent written and communication skills in English.
* Good understanding of testing methodologies and system monitoring, observability, metrics, and logging.
Desirable Skills:
* Experience with Zephyr RTOS.
* Experience using 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.