Embedded Software Engineer
On-sitePittsburgh, Pennsylvania, United States
Job Summary
Develop flight-quality embedded software for bare-metal, real-time OS, and embedded Linux avionics systems through full life-cycle development, hands-on testing, and debugging. Own primary codebases for multiple projects while collaborating with system and hardware engineers to define architectures, scope tasks, and assist in hardware bring-up activities. Deliver production-level software packages and documentation within project budget and schedule by performing design trade-studies and implementing software for space avionics. Build tools and documentation to support embedded system usage and testing.
Required Qualifications
- B.S. Electrical Engineering, Computer Engineering, Computer Science or related field
- Minimum 4 years of experience (2 years with M.S.) in development, testing, and debugging of embedded software systems
- Programming in C, C++, and Python (or similar scripting languages)
- Using multiple operating systems and development environments including Windows and Linux
- Full software development life cycle for complex systems
- Working with configuration management tools (e.g., Git)
Desired Qualifications
- Experience developing drivers, modules, applications, and custom board support packages for embedded Linux systems, especially systems based on Yocto
- Experience with bash/shell and similar scripting languages
- Experience with a variety of microcontroller families and chipsets
- Experience developing and integrating programmable logic for FPGAs in VHDL
- Experience with real-time deterministic systems in an embedded environment
- Experience with robotic control systems (e.g., motor control)
- Experience working with Altium or similar PCB and schematic design tools
- Experience with electrical troubleshooting equipment (e.g., oscilloscopes, multimeters, logic analyzers, etc.)
- Knowledgeable in Failure Detection, Isolation, and Recovery (FDIR) and/or fault-tolerant designs
- Experience developing hardware and systems for space applications
- Experience developing embedded software and instrumentation for spacecraft systems
- Experience with communication or I/O protocols, such as CAN bus, RS-232 / RS-422, TCP/IP, or any spacecraft communication protocols
- Experience working with Git, CI/CD, and Docker
- Experience working within an agile development framework
- Experience in performing software integration and testing, including writing and running unit tests
Hiring someone like this?
Get your role in front of qualified candidates on Sorce.