Embedded Software Engineer

Science Applications International Corporation
Huntsville, United States of America
5 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Intermediate

Job location

Huntsville, United States of America

Tech stack

X86 Architecture
ARM
Unit Testing
Bash
C++
Command-Line Interface
Code Review
Communications Protocols
Computer Engineering
Software Debugging
Memory Management
Linux on Embedded Systems
Middleware
Embedded Software
Ethernet
Firmware
Inter-Process Communication
Joint Test Action (IEEE Standards)
Python
Multiprocessing
Performance Tuning
Queueing Systems
Real-Time Operating Systems
Powerpc
Systems Architecture
Systems Integration
TCP/IP
Universal Asynchronous Receiver/Transmitter
VxWorks
Scripting (Bash/Python/Go/Ruby)
Serial Peripheral Interface
PIC Microcontroller
Real Time Systems
Safety Critical Systems
Reliability of Systems
Integration Tests
Information Technology
Build Tools
Hardware Infrastructure
DO-178B

Job 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., * 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

Requirements

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., * 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), * 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 for this position