Robert Half is expanding its network of Embedded Software Engineers for potential opportunities supporting industrial automation, connected equipment, and manufacturing technology. Unlike traditional web or enterprise software roles, these opportunities focus on developing software that interacts directly with hardware and physical equipment. We are seeking engineers who enjoy working close to the hardware, investigating challenging technical issues, and developing reliable firmware for microcontroller-based systems. Potential projects may involve embedded controllers, industrial sensors, connected equipment, machine monitoring systems, and next-generation manufacturing technology. Primary Responsibilities
- Design, develop, test, and maintain embedded software using C and C++.
- Develop firmware for microcontroller-based devices, including ARM Cortex-M or comparable architectures.
- Work with real-time operating systems such as FreeRTOS, Zephyr, or similar platforms.
- Implement low-level drivers, hardware abstraction layers, bootloaders, and firmware application logic.
- Interface with sensors, actuators, communication modules, and other embedded hardware components.
- Develop and troubleshoot communication interfaces such as SPI, I2C, UART, and CAN bus.
- Collaborate with electrical and hardware engineers during board bring-up, hardware integration, and system validation.
- Diagnose firmware issues using JTAG/SWD debuggers, oscilloscopes, logic analyzers, and other laboratory equipment.
- Optimize software for memory usage, timing requirements, power consumption, and processor performance.
- Develop automated unit tests and hardware-in-the-loop testing procedures.
- Investigate system failures and document root causes, corrective actions, and test results.
- Support prototype testing, production validation, and manufacturing-related firmware changes.
- Participate in firmware code reviews, technical documentation, and release management activities.
- Contribute to secure device communication and firmware update functionality where applicable.
Required Qualifications
- 3+ years of professional embedded software or firmware development experience.
- Strong proficiency in C and/or C++ for embedded systems.
- Experience developing firmware for microcontrollers or resource-constrained hardware.
- Practical experience working with real-time operating systems or bare-metal embedded applications.
- Knowledge of embedded communication protocols such as UART, SPI, I2C, or CAN.
- Experience debugging hardware/software interactions with embedded development tools and laboratory equipment.
- Understanding of interrupts, memory management, timing constraints, and embedded system architecture.
- Experience reading hardware schematics and technical specifications.
- Familiarity with Git, embedded build environments, and software testing practices.
- Ability to collaborate with hardware, electrical, quality, and manufacturing engineering teams.