Embedded Software Engineer
Role details
Job location
Tech stack
Job description
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.
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.
Requirements
Do you have experience in Universal asynchronous receiver-transmitter (UART) protocol?, * 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 we work
Small team, weekly hardware iterations, real boards on every desk. We expect concise, testable, safety-focused firmware development.
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.
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., * ARM Cortex-M (or comparable) - in C, C++, or Rust: 5 years (Required)
- low-power modes, linker scripts, memory maps.: 1 year (Required)