Flight Software Engineer II

NASA Jet Propulsion Laboratory
$122,720 - $138,632Onsite

About The Position

New ideas are all around us, but only a few will change the world. That’s our focus at JPL. We ask the biggest questions, then search the universe for answers—literally. We build upon ideas that have guided generations, then share our discoveries to inspire generations to come. Your mission—your opportunity—is to seek out the answers that bring us one step closer. If you’re driven to discover, create, and inspire something that lasts a lifetime and beyond, you’re ready for JPL. Located in Pasadena, California, JPL has a campus-like environment situated on 177 acres in the foothills of the San Gabriel Mountains and offers a work environment unlike any other: we inspire passion, foster innovation, build collaboration, and reward excellence. If you are passionate about spacecraft design, we invite you to join the Flight Software & Systems Engineering Section. We provide flight software and systems engineering for the design and implementation of spacecraft for the laboratory's key flight projects. We provide leadership and specialized expertise in developing flight software and systems engineering for spacecraft, small satellites, and instrument payloads. As a Flight Software Engineer II, you will be working for JPL’s Flight Software and Systems Engineering Section, which provides leadership and specialized expertise in developing flight software and systems engineering for spacecraft, small satellites, and instrument payloads. As a key member of the Flight Software Architecture and Infrastructure Group, you will perform software engineering activities associated with the delivery of embedded flight software products for small scale projects developing CubeSats, small satellites and spacecraft payloads where the typical flight software team sizes are between one and five people. A typical software engineering assignment would include software requirements definition, software design, code development, peer review, documentation, thorough unit testing, integration testing using simulations and avionics hardware, and defect resolution to JPL flight mission customers. The Flight Software Engineer II would typically work under the guidance of a Cognizant Engineer to develop a solid understanding of the required capabilities of the software system. The engineer would then be responsible for determining the software approach for the development and ultimately be responsible for the final coded capability. This work includes support of software level peer reviews and would also include formal testing of peer developed capabilities.

Requirements

  • Bachelor’s degree in Computer Science, or related discipline with a minimum of 3 years of related work experience; a Master’s degree in similar disciplines with a minimum of 1 year of related experience; or a PhD in similar disciplines with a minimum of 0 years related experience.
  • Understanding and application of advanced principles, theories, concepts and hands-on programming techniques in developing, modifying, debugging, releasing and maintaining real-time embedded software systems for mission-critical, aerospace applications.
  • Developing application programs for the various functional domains (e.g., CDH, GNC, System Fault Protection, etc.) for execution in an embedded flight processor.
  • Experience with distributed computing and inter-process communication (IPC) mechanisms.
  • Familiarity with communication buses and protocols: PCI/PCIe, UART, SPI, I2C, CAN bus, and SpaceWire.
  • Demonstrate ability to show knowledge of UDP / TCP network protocols.
  • Familiarity or experience with real-time or embedded operating systems such as FreeRTOS, RTEMS, Zephyr, or WindRiver VxWorks.
  • Experience with static code analysis toolsets.
  • Demonstrated ability in the development and delivery of reliable, embedded real-time software applications that employs formal and structured lifecycle development process.
  • Familiarity with software development and testing with experience in the following languages and operating systems: C++, C, Python, Linux.
  • Ability to work with in-development hardware undergoing changing interface specifications.
  • Strong verbal and written communication, presentation, and interpersonal skills with ability to work in a team environment.

Nice To Haves

  • Knowledge of Laboratory policies and procedures, NASA policies and procedures, and government regulations across a range of applications.
  • Experience with device driver development and software/hardware interfaces for both custom and commercial hardware, with experience debugging software/hardware interactions and possible failure modes.
  • Experience developing, deploying and maintaining software product lines.
  • Knowledge with software development processes, standards, and practices.
  • System engineering experience in generating, tracking and proving successful implementation of requirements.
  • Understanding of NASA F Prime or cFS open-source frameworks.
  • Hardware-in-the-Loop (HIL) & Testbeds: Hands-on lab debugging using oscilloscopes, logic analyzers.

Responsibilities

  • Perform software engineering activities associated with the delivery of embedded flight software products for small scale projects developing CubeSats, small satellites and spacecraft payloads.
  • Software requirements definition.
  • Software design.
  • Code development.
  • Peer review.
  • Documentation.
  • Thorough unit testing.
  • Integration testing using simulations and avionics hardware.
  • Defect resolution to JPL flight mission customers.
  • Determine the software approach for the development.
  • Responsible for the final coded capability.
  • Support of software level peer reviews.
  • Formal testing of peer developed capabilities.

Benefits

  • variety of health, dental, vision, wellbeing, and retirement plans
  • paid time off
  • learning
  • rideshare
  • childcare
  • flexible schedule
  • parental leave
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service