Logo
Rocket Lab

Software Engineer

Rocket Lab, Los Angeles, California, United States, 90079

Save Job

The Role The software team at K2 aims to integrate various software development areas, encouraging team members to explore parts of the stack beyond their usual experience. This includes GNC algorithms (Rust, C++), application software on flight computers (Rust, C++), embedded software on microcontrollers (Rust, C++), operating systems (Rust, C++, C), HDL programming (VHDL, SystemVerilog), and test systems (Python). Currently, this role does not involve front-end, artificial intelligence, or machine learning development. As a team member, you will develop and verify software for some of the largest spacecraft ever flown, including controlling propulsion, attitude, and power systems to ensure safe and reliable operations. In the first 6 months, you will develop core software architecture components such as fault tolerance, real-time control, and telemetry. By the end of your first year, you'll implement larger systems and verify your code using simulators. Within two years, you'll operate your code on multiple spacecraft, demonstrating robustness in demanding missions. Responsibilities Create software architecture for real-time, fault-tolerant control of a 20kW+ spacecraft Develop software for spacecraft subsystems, including propulsion, guidance/attitude control, thermal, power, and communication systems Design and implement state machines for robust spacecraft operation Create tools for rapid deployment of quality code Perform data analysis and investigate anomalies to resolve software bugs Support integration and testing of spacecraft subsystems Build and maintain infrastructure to enhance development and testing reliability Qualifications Bachelor's degree in computer science, engineering, math, or a related STEM field, or 3+ years of professional software engineering experience Development experience in Rust, C/C++, Python, VHDL, SystemVerilog Nice to Have Experience with spacecraft flight software development Proficiency with Linux systems programming and driver development Experience with CI/CD systems Experience with real-time embedded systems (bare-metal or RTOS) Basic electronics, computer architecture, and control systems knowledge Experience with state machines, software verification, testing, performance analysis, debugging, Kalman Filters, fault-tolerant design, and test system development

#J-18808-Ljbffr