What you'll do
In this role, you will work on the design, development, and implementation of the flight software that commands and monitors our spacecraft. You will work closely with avionics, GNC, missions and other cross-disciplinary teams to deliver high-reliability, high-performance software for our missions. You will have the opportunity to lead projects, hire and mentor junior engineers, and contribute to the overall technical strategy of our satellite programs.
Responsibilities
- Design, develop and validate embedded spacecraft flight software system
- Translate mission and system requirements into software requirements, interfaces, operational modes, state machines, command and telemetry definitions, and fault responses
- Develop real-time software for payload control, sensor/actuator commanding, data acquisition and processing, telemetry, time synchronization, health monitoring, and spacecraft interfaces
- Develop embedded software for autonomy, GNC, fault management, and other time-critical functions
- Integrate flight software with avionics, sensors, actuators, payload, and other subsystems
- Design for deterministic execution, resource constraints, fault tolerance, graceful degradation, safe-state operation, and reliable recovery
- Develop and maintain SILS and HILS environments for flight software integration, verification, and validation
- Establish coding standards, development workflows, code-review practices, test automation, and software quality processes
- Contribute to system architecture, design trades, technical reviews, and mission operations planning
What we look for
Minimum Requirements
- Bachelor’s degree in computer science, electrical, or a related engineering field
- 3+ years of demonstrated experience in embedded software development using C/C++
- Experience developing embedded software from requirements and architecture through implementation, integration, verification, and deployment
- Experience with real-time operating systems in mission-critical environments
- Familiarity with V&V processes, including preparing test plans and procedures, executing tests, and analyzing and reviewing results