Embedded Firmware Engineer
The job description
Tech stack. C/C++ for constrained targets, ARM Cortex-M/R cores, RTOS (FreeRTOS/Zephyr), custom device drivers, power management ICs, real-time scheduling, JTAG/SWD debugging, logic analyzers, static analysis tools
About the role
You will develop firmware for embedded products where resources are severely constrained, timing is absolutely critical, and the software must run flawlessly for years without human intervention. Embedded firmware engineers here own the complete device software stack: board support packages, peripheral drivers, middleware integration, and application logic. You will work within kilobytes of RAM and strict real-time deadlines, developing the discipline to write code that is correct by construction and verified by measurement rather than hope. This is engineering for people who find hard constraints clarifying and satisfying rather than limiting.
What you will achieve
- Deliver complete embedded firmware from board support package through application: drivers, middleware integration, and application logic, all hardened for production
- Meet strict real-time deadlines consistently through careful task architecture, interrupt design, and timing analysis validated with hardware measurements
- Achieve aggressive resource targets: fitting expanding feature sets within tight flash and RAM budgets through disciplined, efficient implementation choices
- Build genuinely robust error handling and recovery: watchdog strategies, brownout behavior, fault logging, and safe-state design that make field issues diagnosable
- Create portable driver abstractions and reusable BSP components that substantially accelerate bring-up of future products on new hardware platforms
What you will bring
Must-haves
- 2 to 5 years developing embedded firmware in C/C++ with production devices operating reliably in real customer environments
- Strong RTOS engineering skills: task decomposition, priority assignment, queues, semaphores, and the reasoning needed to avoid priority inversion and deadlocks
- Experience writing device drivers directly from datasheets: SPI/I2C sensors, displays, motor controllers, or similar peripherals
- Deep understanding of real-time constraints: interrupt latency analysis, worst-case execution estimation, and deterministic behavior under peak load
- Low-level debugging proficiency: JTAG/SWD debugging, fault handler analysis, hard-fault decoding, and post-mortem debugging from crash dumps
- Memory discipline at every level: linker script configuration, section placement, stack depth analysis, and fitting within constrained footprints
- BS in Electrical or Computer Engineering
Nice-to-haves
- Experience with safety-critical development practices: MISRA C enforcement, static analysis gates, or certification processes
- Familiarity with DSP fundamentals for sensor signal processing implemented on general-purpose microcontrollers
- Knowledge of capacitive touch controllers, haptics drivers, or other human-interface peripheral integration
- Experience developing manufacturing test firmware and high-volume production programming flows
Apple
Tesla
Qualcomm
Intel
Western Digital
Seagate