Embedded Firmware Engineer
On-siteBristol, Rhode Island, United States
Job Summary
Design, build, and maintain efficient firmware in C and C++ for embedded microcontrollers and RTOS, while developing system-level software in Go on embedded Linux boards. Bring up new hardware including board support packages, bootloaders, and device drivers, then implement and debug communication across UART, SPI, I2C, CAN, and Ethernet interfaces. Integrate sensors and actuators to establish real-time control and telemetry paths, optimizing for performance, memory footprint, and power constraints. Collaborate with electrical, mechanical, and autonomy engineers to translate system requirements into robust solutions, while writing unit and integration tests supported by hardware-in-the-loop validation. Troubleshoot existing firmware through on-vehicle and field debugging, utilizing oscilloscopes and logic analyzers to resolve issues. Participate in code reviews to refine engineering practices and support hardware-in-the-loop testing.
Required Qualifications
- Degree in Electrical Engineering, Computer Engineering, Computer Science, or a related technical field (or equivalent practical experience)
- 3–5 years of professional embedded software/firmware development experience
- Strong proficiency in C and C++ for embedded microcontrollers (bare-metal and/or RTOS)
- Hands-on experience developing firmware for STM32 microcontrollers (e.g., STM32CubeMX/HAL, LL drivers, or bare-metal register-level programming)
- Experience developing on embedded Linux platforms
- Solid understanding of hardware/software integration: reading schematics and datasheets, and debugging with oscilloscopes, logic analyzers, and JTAG/SWD
- Experience with embedded communication protocols (e.g., UART, SPI, I2C, CAN, Ethernet)
- Familiarity with real-time constraints, interrupts, DMA, and low-level memory management
- Experience writing firmware for power-constrained and/or resource-limited systems (battery power budgets, tight memory/timing footprints)
- Proficiency with version control systems, specifically Git
- Excellent problem-solving skills and the ability to work effectively in a team environment
- United States Citizen or Permanent Resident
- Ability to gain a security clearance
Desired Qualifications
- Experience with cross-compilation, build systems (e.g., CMake, Make, Yocto/Buildroot), and toolchains for embedded targets
- Experience developing with Go
- Experience with serialization protocols like Protobufs, DDS, etc
- Familiarity with robotics middleware or modern robotics frameworks (e.g., ROS 2)
- Experience with CI/CD pipelines for embedded software and automated hardware testing
- Knowledge of containerization and deployment on edge devices
- Experience with maritime sensors, underwater acoustics, or subsea systems
- Familiarity with functional safety or safety-critical software development practices
Hiring someone like this?
Get your role in front of qualified candidates on Sorce.