Firmware Engineer
| Estimated Pay info | Based on similar jobs in your market$60 per hour |
|---|---|
| Hours | Full-time |
| Location | 75 Beattie Pl Ste 930 >, Decatur, GA, US Decatur, Georgia open_in_new |
About this job
Job Description
Robert Half is hiring! 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.
Responsibilities:
• 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.
• 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, with exposure to Agile workflows, Git-based development, and CI/CD practices considered valuable.