Embedded Software Engineer
- Discuss this with your agent
- Open in Claude
- Open in ChatGPT
Role details
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)
Apply for this position
This job is hosted externally. Click below to view the full posting and apply.
Apply on indeed.comGood distractions
Talks and stories from around this role — technically off-topic, practically not.
Moments
Explore playlistsVideos
See allRelated articles
See all
Fully Remote Software Engineer Jobs
Where to Find Entry-Level Software Engineering Jobs
Dev Digest 120 - Apple and peers
Where To Find Software Engineering Jobs