Flight Software Engineer I

JPL/NASA•Pasadena, CA
•$96,616 - $117,104•Onsite

About The Position

The Flight Software Engineer I will join JPL’s Flight Software & Systems Engineering Section and the Instrument Flight Software Group, which designs, develops, tests, and delivers embedded flight software for instruments supporting JPL/NASA missions in astrophysics, planetary science, Earth science, and remote sensing. The group works on systems with complex or specialized operations and science requirements. The role involves implementing or testing science instruments and spacecraft capabilities, including command, communication, data management, instrument managers, and fault protection. Work ranges from low-level device drivers to high-level behaviors and includes collaboration with instrument engineers and multidisciplinary teams.

Requirements

  • Bachelor’s degree in Computer Science, Computer Engineering, or a related technical discipline and at least 1 year of related experience; alternatively, a master’s degree in a similar discipline, or a Ph.D. in a similar discipline with zero years of related experience.
  • Strong C/C++ programming skills.
  • Multi-threaded programming experience or knowledge.
  • Coursework in operating systems, computer architecture, algorithms, and data structures.
  • Knowledge of principles, theories, concepts, and hands-on programming techniques for developing, modifying, debugging, releasing, and maintaining real-time embedded software systems for mission-critical aerospace applications.
  • Knowledge of developing embedded real-time application programs using an RTOS.
  • Knowledge of developing device drivers and software/hardware interfaces for custom and commercial hardware.
  • Knowledge of distributed computing and inter-process communication mechanisms in a space-partitioned software architecture.
  • Knowledge of communication buses and protocols, including SpaceWire, PCI/PCIe, UART, and Ethernet.
  • Knowledge of continuous integration, development flow, and git flow processes.
  • Internship or experience involving significant C or C++ programming.
  • Internship or experience with embedded processors or microcontroller programming, or with the development process on CubeSats.

Nice To Haves

  • Coursework in programming languages, software engineering, computer science theory, or embedded programming.
  • Python, C++, or Java skills.
  • Experience applying artificial intelligence tools to technical projects.

Responsibilities

  • Design and implement real-time flight software for science instruments.
  • Work with instrument engineers to develop software requirements and flight-software component designs that meet project requirements.
  • Design software modules for flight-system functions, hardware/software interfaces, boot processes, and command and data handling, including instrument operations, science-data acquisition and control, engineering and science data handling, fault protection, and thermal and power control in nominal and off-nominal scenarios.
  • Develop test plans, unit tests, and regression tests; evaluate test results and run tests against simulators and testbeds.
  • Identify and troubleshoot technical issues with flight software in an integrated system.
  • Work with a multidisciplinary team and experienced flight-software developers.

Benefits

  • Health, dental, vision, wellbeing, and retirement plans.
  • Paid time off.
  • Learning opportunities.
  • Rideshare benefits.
  • Childcare benefits.
  • Flexible schedule.
  • Parental leave.
  • Additional benefits and perks; benefits for eligible positions are effective the first day of the month coincident with or immediately following the employee’s start date.
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service