A client is building a small, safety-critical kinetic munition delivered by an FPV-class airframe. The compute side is an electro mechanical safe and arm device (EMSAD).
The current codebase is Rust-on-Embassy, but we're language-agnostic on the role — strong C, C++, or Rust embedded engineers are equally welcome. This is a full-time on-site position with locations in either,
- San Francisco, CA.
- Los Angeles, CA.
- Washington, DC.
What you'll do
- Own firmware end-to-end: drivers, state machine, communication protocols, command surface, bring-up, qualification, OTA / programming flow.
- Build the host-testable simulation surface. The state machine should be testable on a laptop without flashing a board — and stay that way.
- Work shoulder-to-shoulder with the HW engineer on bring-up, register-map ergonomics, and timing.
- Carry the firmware through environmental qualification (thermal, EMC, vibration).
- Define and enforce the firmware-side safety case.
Required
- 5+ years of professional embedded firmware on ARM Cortex-M (or comparable) — in C, C++, or Rust.
- Deep comfort with interrupts, DMA, clocks, timers, low-power modes, linker scripts, memory maps.
- Strong with I²C, SPI, UART, USB CDC and debugging using scope / logic analyzer.
- Experience building state machines for real-world hardware.
- Discipline around testability and host testing.
- Working English, written and verbal.
Nice to have
- Rust embedded experience — Embassy, embedded-hal, defmt, probe-rs, RTIC, no_std ecosystem.
- Modern C++ embedded (C++17/20 in firmware).
- Async firmware experience (Embassy, Zephyr, FreeRTOS).
- Safety-critical firmware background: ISO 26262, DO-178C, IEC 61508, etc.
- Bootloader / DFU / secure-boot work.
- FPV / small-UAV firmware: Betaflight, MAVLink, INAV.
- C FFI / SDK bindings.
How you'll work
Small team, weekly hardware iterations, real boards on every desk. We expect concise, testable, safety-focused firmware development.