Senior Embedded Software Engineer
Job Description
Join a team delivering embedded firmware for microcontroller-based systems in a hybrid role based in Greenbelt, MD.
Responsibilities
- Design, develop, and maintain embedded firmware for microcontroller-based systems, targeting performance, reliability, and power efficiency.
- Support system architecture and firmware design, including low-level driver development for sensors and I/O interfaces.
- Build and maintain hardware abstraction layers and implement/maintain communication protocols.
- Investigate, diagnose, and resolve complex firmware and system issues using tools such as oscilloscopes, logic analyzers, and debuggers.
- Optimize firmware for real-time and safety-critical requirements, including performance, memory usage, and power consumption.
- Coordinate with hardware engineers, software teams, and product stakeholders to ensure firmware integrates cleanly with hardware and system-level applications.
- Create and maintain high-quality documentation, including specifications, design documents, test plans, and user manuals.
- Develop and execute unit tests, integration tests, and system-level validation to improve firmware quality and robustness.
- Provide technical leadership and mentorship to junior and mid-level engineers, focusing on best practices and complex problem-solving.
- Track advancements in embedded systems and firmware development techniques, and contribute to improving engineering practices.
Requirements
- US Citizen with Secret level security clearance, or willingness and ability to obtain a clearance.
- Bachelor’s or Master’s degree in Computer Engineering, Electrical Engineering, or a related field, or equivalent work experience.
- Minimum 4 years of hands-on embedded firmware development with a track record of successful project delivery.
Technologies
- C/C++
- ARM Cortex-M, STM32, i.MX
- Bare metal, RTOS
- UART, SPI, I2C, CAN, Ethernet
- JTAG
- Oscilloscopes, logic analyzers, debuggers
- Git, SVN
- FPGA
- Embedded Linux
- Python
Preferred Qualifications
- Experience with FPGA development, low-level hardware design, or system-on-chip (SoC) integration.
- Experience programming on custom embedded Linux platforms running on embedded application processors, including building custom Linux features and optimizing power/speed.
- Experience with scripting languages (such as Python) for automation or testing.
Benefits
- Relocation assistance
Work Location
- Hybrid remote: Greenbelt, MD 20770
- Onsite expectation: 3x per week