You will be responsible for architecting and evolving the core operating system capabilities of some of the largest spacecraft ever flown, ensuring a reliable boundary between SoC specific complexity and high-level flight software. You will write mission-critical code that maintains a secure boot chain and platform for safe operation of the vehicle. In your first 6 months you will develop core pieces of the software platform including tuning Linux to meet hard real-time requirements, and creating a shared sense of time across the vehicle. In your first year you will develop a strategy and tooling to ensure we can utilize the latest Kernel versions with confidence. 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
- Maintain custom RT Linux Distribution for internally developed computers
- Maintain and customize UBoot to support a bullet-proof rollback system along with validation of authenticity at every step of the boot process
- Curate device trees across various boards to allow easy use of hardware specific features
- 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 5+ years of professional experience in software engineering
- Development experience in Rust, C/C++, Python, VHDL, SystemVerilog
Nice to Have
- Fluency with Linux systems programming and driver development
- Familiarity with building embedded Linux images (Buildroot, Bitbake, Yocto)
- Experience building or working with hard real-time embedded systems (bare-metal or RT Linux)
- Familiarity with Precision Time Protocol (IEEE1588 PTP)
- Experience with spacecraft flight software development
- Experience with continuous integration and continuous delivery systems
- Basic knowledge of electronics, computer architecture, and control systems
- Experience with software verification and testing methods
- Experience with software and network performance analysis and debugging
- 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 $160,000 - $200,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
If you don't meet 100% of the preferred skills and experience, we encourage you to still apply! Building a spacecraft unlike any other requires a team unlike any other and non-traditional career twists and turns are encouraged!