Skip to content
Learn/Flight Software & GNC

Design & engineer

Flight Software & GNC

Writing the software and algorithms that fly a rocket or spacecraft, from embedded code to guidance and orbit control.

High barrier to entryStart in a few months once you hold the degree and can show working embedded or simulation code$135k–$236k/yrtypical pay
Ready for the numbers? Salaries in flight software, the companies hiring for it and today's openings.

What it is

Flight software engineers write the code that runs on a rocket or spacecraft: it commands hardware, reads sensors, sends telemetry to the ground and handles faults on its own. Guidance, navigation and control (GNC) engineers write the math inside it that works out where the vehicle is, where it should go and how to steer there, and flight dynamics engineers plan trajectories, orbits and maneuvers. Both test their work heavily in simulation and on real hardware before anything flies.

What you actually do

  • Write and review C or C++ code that runs on flight computers, often on a real-time operating system or embedded Linux.
  • Write drivers and interfaces for sensors, radios, valves and other components, working from datasheets and schematics.
  • Develop guidance, navigation and control algorithms, such as attitude estimation with Kalman filters or trajectory optimization.
  • Build simulations and run Monte Carlo analyses to check that the vehicle performs across thousands of possible conditions.
  • Run hardware-in-the-loop tests, where flight code runs on real avionics connected to a simulated vehicle.
  • Support launches and on-orbit operations, including on-call rotations, anomaly response and post-flight data review.

A day of this work, concretely

Add a driver for a new star tracker

The spacecraft is switching to a new star tracker. You read the datasheet and interface specification, write the driver in C++ for the flight computer, and add telemetry so operators can see its health. The change is released only after it passes a hardware-in-the-loop test.

Run a Monte Carlo on a landing trajectory

Before a booster landing, the team needs confidence the guidance works when winds, engine thrust and sensor errors vary. You set up thousands of simulated flights with randomized inputs and find the cases that miss. Each one is traced to a gain, a limit or a model that needs work.

Plan a collision avoidance maneuver

A tracked piece of debris is predicted to pass close to one of your satellites. You compute the collision probability from the orbit estimates and design a small maneuver that lowers it without disturbing the mission. Operations then uploads the commands you prepared.

Is it right for you?

Flight software engineers usually studied computer science, computer engineering or electrical engineering, and many come from embedded work in automotive, robotics, medical devices or consumer hardware. GNC and flight dynamics engineers usually studied aerospace or mechanical engineering or physics, often with a master's in controls, estimation or orbital mechanics. Both suit people who are rigorous about testing and like seeing code move real hardware.

You will likely enjoy it if

  • You enjoy low-level programming in C or C++ and like knowing exactly what the hardware is doing.
  • You liked control theory, estimation or orbital mechanics and want to apply them to real vehicles.
  • You write tests as carefully as features, because a bug in flight can end a mission.
  • You are comfortable with on-call operations and decisions under time pressure during a launch or an anomaly.

What you need

  • Bachelor's degree in computer science, computer, electrical or aerospace engineering, or physics
  • Strong C or C++ for flight software, and C++ or Python for GNC and simulation work
  • U.S. person status under ITAR for most US roles, and U.S. citizenship where a program requires it
  • Ability to obtain a Secret clearance on some launch and defense programs

Skills that help

C and C++Python and MATLABRTOS and embedded LinuxKalman filtering and estimationOrbital mechanicsHardware-in-the-loop testing

How to get started

  1. 1Earn a computer science, electrical, computer or aerospace engineering degree; for GNC, add control theory, estimation and orbital mechanics courses.
  2. 2Get fluent in C and C++ on real hardware by writing firmware for a microcontroller board, including drivers for sensors over SPI, I2C or UART.
  3. 3Study open source flight code: NASA's core Flight System and JPL's F Prime framework are both public.
  4. 4For GNC, build a Python simulation of a satellite's attitude or a rocket's ascent, add a controller and a Kalman filter, and test it with Monte Carlo runs.
  5. 5Join a CubeSat, rocketry or drone team and own its flight code or its navigation and control.
  6. 6Apply for flight software, embedded software or GNC roles; experienced embedded engineers from other industries can apply directly to mid-level roles.

Common misconceptions

Myth: Flight software is written in obscure languages.

Reality: Most postings ask for C and C++, with Python for tooling, analysis and tests, and some GNC teams name Julia or Rust. The unusual part is the rigor: real-time limits, constrained memory and heavy testing on real hardware.

Myth: GNC engineers only do theory.

Reality: Many teams write production flight code, run hardware-in-the-loop tests and take on-call shifts commanding satellites. The math matters, and so does shipping software that flies.

Myth: You need aerospace experience to write flight software.

Reality: Postings ask first for C or C++, embedded fundamentals and Linux, and some say aerospace experience is not required. Space practices such as fault protection are learned on the job.

What it pays

Flight Software work typically pays $135k–$236k/yr today, with a live median of $160k/yr across the 177 open roles that state their pay.

What our research measures about flight software work

Read from the open postings on 2026-10-29 by our space industry research, rebuilt every day. Every figure opens the row of the report it comes from.

Frequently asked questions

What is the difference between GNC and flight software?

Flight software is the whole program running on the vehicle: it talks to hardware, manages modes, sends telemetry and responds to faults. GNC is the set of algorithms inside it that estimate the vehicle's position and orientation and decide how to steer, and GNC engineers also build the simulations that prove those algorithms. Flight dynamics engineers plan trajectories, orbits and maneuvers. On many teams the roles overlap, and GNC engineers write production code themselves.

What programming languages do flight software engineers use?

C and C++ dominate flight code, running on a real-time operating system, bare metal or embedded Linux, often on ARM processors. Python is used for tests, tooling and analysis, GNC teams also use MATLAB, and some name Julia or Rust. To practice on real flight frameworks, NASA's core Flight System and JPL's F Prime are open source, and NASA describes cFS as used on flagship spacecraft, human spacecraft and CubeSats.

Do GNC engineers need a master's degree?

A bachelor's in aerospace, computer science, physics or engineering is the stated minimum at many companies, with a master's or PhD often listed as preferred. What counts is showing you can apply orbital mechanics, control and estimation in working code. Open source tools help you build that evidence: NASA's GMAT for mission design and navigation, and the Basilisk spacecraft simulation framework from the University of Colorado's AVS Lab and LASP. The degree path is covered in how to become an aerospace engineer.

Do flight software and GNC jobs require a security clearance?

Most US roles require U.S. person status under export rules, and some launch and defense programs require U.S. citizenship and the ability to obtain a Secret clearance. The ITAR and security clearance guide explains what that means. For pay by level, see the space industry salaries guide; the board lists 380 open flight software and GNC roles today.