Embedded Firmware Engineer – Low-Power IoT Devices

Remotely
Full-time

Design and debug ultra-reliable firmware for microcontrollers powering tomorrow’s IoT, automotive and medical products.


Responsibilities

- Craft clean, deterministic C/C++ code for ARM Cortex-M and RISC-V MCUs.  

- Build and refine board support packages that bring brand-new hardware to life.  

- Implement peripheral drivers for I2C, SPI, UART, CAN and USB—then stress-test them with oscilloscopes and logic analyzers.  

- Shape robust bootloaders and secure OTA update flows that keep field systems evergreen.  

- Profile and tune code paths to squeeze every microwatt from battery-driven designs.  

- Trace hard real-time bugs with GDB, J-Link, JTAG and hardware trace ports; document root causes concisely.  

- Collaborate with electrical, mechanical and test engineers—often remotely—to integrate firmware, PCB layouts and enclosure constraints into one seamless product.  

- Guard code quality through Git workflows, peer reviews and CI pipelines.  


Requirements

- You wield 5+ years of hands-on experience as a Firmware Engineer or Embedded Firmware Engineer.  

- Deep command of Embedded C/C++, assembly snippets and CMSIS libraries.  

- Proven record of shipping commercial products that run under RTOS (FreeRTOS or Zephyr) with sub-millisecond deadlines.  

- Confident in hardware bring-up, schematic reading and the black-art of signal probing.  

- Familiar with low-power design techniques: sleep states, dynamic clock gating, adaptive duty cycling.  

- Comfortable integrating BLE, Wi-Fi, LTE-M or CAN stacks and troubleshooting RF coexistence issues.  

- Adept in static analysis, MISRA compliance, unit testing and regression automation.  

- Clear, engaging communication skills that bridge firmware and non-firmware teams.  

- Bachelor’s degree or higher in Electrical Engineering, Computer Engineering, or similar discipline.  


Pluses That Make You Stand Out

- Experience with medical IEC-62304 or automotive ISO-26262 lifecycle standards.  

- Rust or MicroPython prototyping know-how.  

- Hands-on with Matter, Thread or Zigbee protocol layers.  

- Prior success leading dispersed engineering squads across multiple time zones.