This list contains only the countries for which job offers have been published in the selected language (e.g., in the French version, only job offers written in French are displayed, and in the English version, only those in English).
We are looking for a Firmware Engineer to join our team and help build reliable software for embedded hardware platforms. This role focuses on low-level development across microcontroller and embedded Linux environments, with an emphasis on hardware bring-up, driver development, and system performance. The ideal candidate brings strong C/C++ expertise, works effectively with cross-functional teams, and is comfortable diagnosing complex interactions between hardware and firmware.
Job Responsibility:
Lead initial firmware enablement for new boards by configuring boot processes, initializing memory, and validating connected hardware components
Create and support embedded software in C/C++ for both bare-metal targets and Linux-based devices, ensuring stable and maintainable implementations
Build and refine drivers for onboard components and communication buses, including sensor, storage, display, radio, serial, and Ethernet interfaces
Develop low-level control logic such as interrupt routines, timing mechanisms, and scheduling behavior to support predictable system operation
Improve system efficiency by analyzing processor usage, memory footprint, and power behavior to align with product performance goals
Troubleshoot hardware-software issues using lab and debugging equipment such as oscilloscopes, logic analyzers, protocol tools, and hardware debuggers
Partner with hardware teams to assess schematics and board layouts, helping identify firmware considerations and technical risks early in development
Maintain foundational platform software including board support packages, boot components, operating system settings, and diagnostic capabilities for supportability
Expand firmware quality practices through unit testing, integration validation, hardware-in-the-loop testing, peer reviews, and contributions to build automation and documentation
Participate in Agile delivery activities and work with product and engineering stakeholders to translate requirements into actionable technical work
Requirements:
3+ years of experience developing embedded firmware for production hardware
Strong programming ability in C/C++ within embedded environments, including memory control, concurrency, and real-time behavior
Hands-on experience with bare-metal systems and at least one embedded Linux environment or RTOS platform
Proven background in board bring-up, including bootloader setup, hardware initialization, and validation testing
Experience creating and debugging device drivers for common embedded interfaces such as I2C, SPI, UART, USB, CAN, and Ethernet
Familiarity with interrupts, timers, watchdogs, clock configuration, and other low-level timing or control mechanisms
Proficiency with debugging tools such as oscilloscopes, logic analyzers, serial consoles, and in-circuit debuggers
Ability to interpret schematics and understand board-level hardware constraints