Embedded Software Engineer

The Hire
Washington, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Junior
Compensation
$ 250K

Job location

Washington, United States of America

Tech stack

ARM
Booting (BIOS)
C++
Communications Protocols
Software Debugging
Embedded Software
Firmware
FreeRTOS
GNU Linker
Universal Asynchronous Receiver/Transmitter
State Machines
DO-178B

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