Lead Embedded Systems Software Engineer
Posted Updated
- We are looking for a Lead Embedded Software Engineer to own the full path from product requirements to working, tested firmware. You will translate product-level goals into system software architecture, write production code, and lead a team of embedded engineers to ship reliable, high-performance software
- This is a player-coach role. You will write code every day while also guiding the team, reviewing designs, and setting technical direction. You must be as comfortable at a whiteboard as you are at a debugger. You will report to the head of product engineering
- Translate product requirements into clear system-level software architecture
- Define software interfaces, data flows, and module boundaries across the embedded stack
- Make and own key technical decisions. Document them clearly for the team
- Identify risks early and drive solutions before they become blockers
- Write, review, and maintain production firmware in C/C++ (and Rust where applicable)
- Develop drivers, middleware, and application logic for sensor-rich embedded platforms
- Work with Zephyr RTOS across multiple MCU families (STM32, Nordic nRF, ESP32)
- Use West and CMake to manage builds, module dependencies, and board configurations
- Debug firmware using JTAG, SWD, logic analyzers, and oscilloscopes
- Integrate and validate sensors including IMUs, accelerometers, and gyroscopes
- Implement and optimize networking stacks - BLE, Thread, and Wi-Fi
- Design and maintain backend communication protocols for reliable edge-to-cloud data transfer
- Write automated unit and integration tests before or alongside feature code
- Build and maintain HIL (hardware-in-the-loop) and SIL (software-in-the-loop) test frameworks
- Set team standards for test coverage, static analysis, and CI/CD pipelines
- Perform code reviews with a focus on correctness, safety, and long-term maintainability
- Lead a small team of embedded engineers. Set clear goals and unblock day-to-day work
- Mentor engineers through design reviews, pair programming, and direct feedback
- Collaborate with hardware, systems, and product teams to align on requirements
- Contribute to hiring - interview candidates and help define the team’s technical bar
- In your first 90 days, you will have mapped the current embedded software architecture, identified the highest-priority gaps, and shipped at least one meaningful feature end-to-end
- Within six months, you will have established a team testing standard, introduced measurable improvements to firmware reliability, and built strong working relationships with hardware and systems engineering
- 5+ years of embedded software development experience in production systems
- Strong C/C++ skills in resource-constrained environments (bare-metal and RTOS)
- Proficiency with hardware debug tooling: JTAG, SWD, logic analyzers, and oscilloscopes
- Solid Git workflow practices: branching strategy, code review process, and CI/CD integration
- Solid understanding of wireless protocols - BLE, Thread, and Wi-Fi - including their stack implementations
- Experience integrating and characterizing inertial sensors (IMU, accelerometer, gyroscope)
- Hands-on experience with Zephyr RTOS, including West build system and CMake
- Deep knowledge of at least one MCU family: STM32, Nordic nRF, or ESP32
- Demonstrated ability to lead a technical team while remaining a hands-on contributor
- Strong skills in writing automated tests for embedded code: unit tests, mocking, HIL/SIL frameworks
- Experience designing and implementing backend communications (MQTT, CoAP, HTTP/REST, or similar)
- Clear communicator. Able to explain complex technical decisions to non-specialist stakeholders
- Familiarity with TinyML or edge ML frameworks (TFLite Micro, Edge Impulse, ONNX Runtime)
- Background in aerospace, satellite, or other safety-critical systems
- Experience with Rust in embedded contexts
- Experience with model optimization techniques such as quantization and pruning
- Contributions to open-source embedded or RTOS projects
