We are seeking an Embedded Software Engineer with strong bare-metal experience to design, develop, and support low-level embedded software.
U.S. CITIZENSHIP REQUIRED FOR THIS ROLE.
This role focuses on base-level embedded software development using C, C++, and Assembly, working close to hardware on real-time embedded platforms.
What You’ll Do
- Develop and maintain bare-metal embedded software in C/C++ and Assembly
- Design and implement low-level drivers and board support packages
- Debug, test, and validate embedded software on target hardware
- Support software architecture, design reviews, and technical documentation
- Create and execute test plans to verify software against requirements
- Collaborate closely with hardware and systems teams
- Provide support for in-house testing and occasional field support
Required Experience
- BS or MS in Electrical Engineering, Computer Science, or related field (PhD a plus)
- 8+ years of embedded software development experience
- Experience writing low-level device drivers (GPIO, timers, SPI, UART, CAN, etc.)
- Familiarity with embedded communication protocols (SPI, CAN, RS-485, Modbus)
- Hands-on debugging using oscilloscopes, analyzers, and embedded toolchains
- Experience with software requirements, documentation, and version control (Git or SVN)
Nice to Have
- Experience with TI or NXP microcontrollers (C2000, Sitara, MPC, or similar)
- Exposure to safety-critical or regulated software environments
- Familiarity with aviation, defense, or industrial software standards
- Experience with hardware-in-the-loop (HIL) or model-based development tools