Flight Software Engineer Verified today
The 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. Rust enables us to be more effective across the entire stack: GNC algorithms, application software on flight computers, embedded software on microcontrollers, and more.
As a Flight Software Engineer, you will be responsible for the development and verification of the software used to fly some of the largest spacecraft ever built. You will write mission-critical code that controls propulsion systems, attitude control systems, and power systems to ensure safe and reliable operation.
In your first 6 months you will develop core pieces of the software architecture including 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 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: $123,000 - $160,000 plus equity in the company
- Salary based on knowledge and skills, education, and experience level
- Comprehensive benefits package including paid time off, medical/dental/vision coverage, life insurance, and paid parental leave
Export Compliance
This role provides access to information and items controlled by U.S. export control regulations, including ITAR. You must either be a U.S. person as defined by 22 C.F.R. § 120.15 or otherwise eligible for a federally issued export control license.