Flight Software Engineer

K2Spacecorporation · Los Angeles, CA · Engineering

Posted 2026-09-30

Apply for this role →

The software team at K2 is building our stack primarily in Rust because we believe modern programming languages should be fun, as well as correct. We see Rust as a key enabling technology that allows us to be more effective as software engineers across the entire stack whether that is contributing to the GNC algorithms, application software on flight computers, embedded software on microcontrollers, and many things in-between.

As a part of the team, you will be responsible for the development and verification of the software used to fly some of the largest spacecraft that have ever been flown. You will be able to write mission-critical code that controls propulsion systems, attitude control systems, and power systems to ensure safe and reliable operation of the vehicle. In your first 6 months you will develop core pieces of the software architecture including the strategies for fault tolerance, real-time control, and telemetry downlink. In your first year you will implement larger software systems and begin verifying your code using both software and hardware in the loop simulators. In your first two years you will operate your code on multiple spacecraft, demonstrating robust performance in demanding missions.

Responsibilities

Create software architecture for real-time, fault tolerant control of a 20kW+ spacecraft

Develop software applications for control of spacecraft subsystems, including propulsion, guidance/attitude control, thermal, power, and communications systems

Design and implement state machines for robust operation of the spacecraft

Author drivers for microcontroller peripherals and external sensors.

Create and utilize robust tools to allow for rapid deployment of quality code

Perform data analysis and anomaly investigation to identify and resolve software bugs

Support integration and testing of the spacecraft subsystems

Build and maintain infrastructure to increase reliability when developing and testing software

Qualifications

Bachelor's degree in computer science, computer engineering, electrical engineering, math, or a STEM discipline or 3+ years of professional experience in software engineering

Development experience in C/C++ or Rust

Nice to Have

Experience with spacecraft flight software development

Fluency with Linux systems programming and driver development

Experience with continuous integration and continuous delivery systems

Experience working with hard real-time embedded systems (bare-metal or RTOS)

Experience authoring no_std systems in Rust

Basic knowledge of electronics, computer architecture, and control systems

Experience developing or working with state machines

Experience with software verification and testing methods

Experience with software and network performance analysis and debugging

Experience working in Rust production environments

Experience with fault tolerant software design and implementation

Experience defining and creating test systems for both hardware-in-the-loop and hardware-out-of-the-loop

Compensation and Benefits:

Base salary range for this role is $123,000 - $170,000 + equity in the company

Salary will be based on several factors including, but not limited to: knowledge and skills, education, and experience level

Comprehensive benefits package including paid time off, medical/dental/vision/ coverage, life insurance, paid parental leave, and many other perks

Apply for this role →

← Back to all jobs