Description
Description
SAIC is looking for an Embedded Software Engineer to design, develop, and optimize software that runs directly on hardware devices. This role involves working close to the hardware - interfacing with microcontrollers, processors, and real-time operating systems to build reliable, deterministic, and high-performance embedded solutions. You'll collaborate with hardware engineers, firmware developers, and system architects to deliver products from concept through production. This role is onsite in Huntsville, AL.
Key Responsibilities
- Design, develop, test, and maintain embedded software for microcontroller- and processor-based systems
- Develop real-time applications using VxWorks RTOS, ensuring deterministic behavior and system reliability
- Write efficient, maintainable, and well-documented code in C/C++
- Interface with hardware components such as sensors, actuators, and communication modules (UART, SPI, I2C, CAN, etc.)
- Develop and debug low-level drivers, BSPs (Board Support Packages), and middleware in VxWorks environments
- Configure and optimize VxWorks kernel components, tasks, scheduling, and memory management
- Perform system bring-up, debugging, and performance tuning on embedded targets
- Participate in system architecture and real-time system design decisions
- Conduct code reviews, unit testing, and integration testing
- Troubleshoot hardware/software integration issues, including timing and concurrency problems
Qualifications
Education Requirements
- Bachelor's degree in Computer Engineering, Electrical Engineering, Computer Science, or related field and two (2) years of experience in embedded software or firmware development
Clearance Requirements
- Must possess an active Secret security clearance; US Citizenship required.
Required Skills
- Strong proficiency in C/C++
- Hands-on experience with VxWorks RTOS in a production or lab environment
- Understanding of real-time scheduling, inter-process communication (IPC), and synchronization mechanisms (semaphores, message queues, etc.)
- Experience with microcontrollers or embedded processors (e.g., ARM Cortex, PowerPC, x86)
- Familiarity with communication protocols (SPI, I2C, UART, CAN, Ethernet)
- Experience with debugging tools (oscilloscopes, logic analyzers, JTAG debuggers)
Preferred Qualifications
- Experience developing or modifying VxWorks BSPs
- Familiarity with the VxWorks development ecosystem (Workbench, command-line tools, build systems)
- Experience with embedded networking (TCP/IP stack in VxWorks)
- Knowledge of safety-critical systems (e.g., DO-178C, ISO 26262)
- Experience with embedded Linux for comparison or hybrid systems
- Familiarity with multi-core or distributed embedded systems
- Scripting experience (Python, Bash) for automation and testing
Apply on company website