**Role Overview**
You will join a best-in-class software development environment for firmware development on mixed-signal, heterogeneous embedded devices. The goal is to provide embedded software engineers with modern tools to solve problems efficiently and effectively.
**Responsibilities:**
* Ensure deliverables provide a meaningful developer experience in tooling, middleware, and technical documentation.
* Collaborate with hardware IP owners to define requirements and models for various peripherals and system designs.
* Stay up-to-date with the latest advancements in relevant programming languages, embedded tooling, and open-source ecosystems.
* Identify gaps in current developer tooling, middleware, and technical documentation and develop a plan to fill them.
* Share 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 enabling continuous improvements.
**Requirements:**
* 10+ years of embedded software development experience in C, including understanding differences between various C versions, standard library implementations, and compiler flags commonly used in embedded systems.
* Experience engaging with and contributing to open-source projects.
* Significant experience with GDB, GCC, and GNU binutils, including building them from source. LLVM and Clang are strong plus points.
* Experience with cmake, make, ninja, and other build systems.
* Experience with Static Analysis tools.
* Ability to interact with UI/UX designers on application design.
* Strong fundamentals in data structures and algorithms.
* Excellent written and communication skills in English.
**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.
* Familiarity with Typescript or node.js.