Embedded Software Engineer
Other levels:
Senior Embedded Software Engineer
Principal Embedded Software Engineer
Staff Embedded Software Engineer
Lead Embedded Software Engineer
Junior Embedded Software Engineer
1
Which company are you aiming at?
To generate precise rejection-prevention feedback and application strategy, tell us where you're targeting.
2
Send your application
You need an account so we know where to send the feedback.
The job description
Tech stack. C, C++, ARM Cortex-M, GCC toolchain, CMake, FreeRTOS, SPI/I2C/UART, JTAG/SWD debuggers, Git
About the role
You will join an embedded systems company that builds sensor-rich products for industrial and consumer markets. The firmware team owns the full lifecycle of device software, from bare-metal drivers through application logic, and ships millions of units a year. This role matters because firmware is the product: it determines power consumption, responsiveness, and reliability in the field.
What you will achieve
- Ship production firmware for at least two ARM Cortex-M product lines, delivering every feature milestone on schedule across both lines while keeping defect escape below 0.5% in the first production quarter
- Drive boot-to-application start time under 2 seconds while holding flash footprint below 256 KB on the flagship SKU, freeing headroom for two future feature releases without a hardware change
- Reduce field defect rates by hardening error handling and watchdog recovery paths, cutting firmware-attributed customer returns by 30% within the first year after release
- Build a reusable peripheral driver library for SPI, I2C, UART, and DMA that halves bring-up time on new board revisions, measured from first power-on to passing smoke tests
- Own power profiling across sleep modes with instrumented current measurements, delivering a verified 15% battery-life improvement on the next hardware revision
What you will bring
Must-haves
- 2-5 years writing production C/C++ firmware for resource-constrained microcontrollers such as Cortex-M, with at least one product you supported through a full release cycle
- Working knowledge of at least one RTOS (FreeRTOS, Zephyr, or ThreadX), including task scheduling, mutexes, priority management, and interrupt-safe queues
- Hands-on experience with common serial interfaces (SPI, I2C, UART), including debugging them with a logic analyzer or oscilloscope when the waveform disagrees with the datasheet
- Comfort reading schematics and board layouts to bring up new hardware, including clock trees, pin multiplexing, and power-domain sequencing
- Familiarity with linker scripts, memory maps, and startup code for at least one MCU family, and the ability to explain where every byte of RAM goes
- A track record of debugging hard faults, stack overflows, and race conditions with JTAG/SWD tools, using structured methods rather than trial and error
- Clean Git hygiene and code review habits in a team setting, including commit messages and review comments that help the next reader
Nice-to-haves
- Experience with low-power design techniques such as tickless idle, peripheral clock gating, and retention RAM, backed by measured current numbers
- Exposure to bootloader design or in-field firmware update (DFU) mechanisms, including rollback and anti-bricking strategies
- Basic Python scripting for test automation, build tooling, or parsing device logs
Apple
NVIDIA
Tesla
Qualcomm
Bosch
Garmin