We are seeking a Software Engineer to architect, develop, and own the onboard software stack for next-generation aerospace vehicles. You will work closely with Guidance, Navigation, and Controls (GN&C), avionics, and autonomy teams to design and implement real-time flight software responsible for mission sequencing, fault management, telemetry, and closed-loop control.
Key Responsibilities
- Lead the architecture, design, and implementation of flight software subsystems including mode management, fault detection/isolation/recovery (FDIR), command and telemetry handling, and health monitoring.
- Work with G&C and avionics to integrate guidance, navigation, and control algorithms into real-time, resource-constrained environments using RTOS-based frameworks.
- Define and implement interfaces to sensors, actuators, and communication links (e.g., IMUs, RF links, propulsion, power systems) including low-level drivers and middleware.
- Develop and maintain simulation and test infrastructure, including software-in-the-loop (SITL), hardware-in-the-loop (HITL), Monte Carlo analysis, and recorded flight data playback to validate flight software performance and robustness.
- Own flight software reliability and safety: perform hazard analyses, define fault containment strategies, implement watchdogs, safe modes, and redundancy management.
- Collaborate with vehicle engineering to define software requirements, architecture documents, ICDs, and verification plans for flight-critical functionality.
- Lead code reviews, integration efforts, and debugging sessions on embedded targets with cross-functional teams (GN&C, avionics, payloads, ground software).
- Support integration and flight test campaigns, including pre-flight readiness, real-time telemetry monitoring, anomaly investigation, and post-flight data analysis.
- Mentor and guide junior flight software engineers, establish best practices for coding standards, testing, and configuration management for flight-critical systems.
Required Qualifications
- 5–10 years of experience designing, implementing, and testing embedded or flight software for aerospace, defense, or autonomous systems.
- Strong experience with C and/or C++ for embedded, real-time systems
- Hands-on experience developing software for microcontrollers or embedded processors, including working with RTOSes, interrupts, and hardware interfaces (e.g., UART, CAN, Ethernet).
- Demonstrated experience with software-in-the-loop and hardware-in-the-loop testing, including building and using testbeds and simulators for flight software validation.
Preferred Qualifications
- Experience in flight software or safety-critical embedded systems for launch vehicles, spacecraft, UAVs, or advanced aerospace platforms.
- Experience integrating advanced GN&C algorithms into flight software, including MIMO feedback, trajectory following, and mission sequencing.
- Familiarity with aerospace software standards and processes (e.g., NASA/ESA standards, DO-178C, ECSS, or similar safety-critical frameworks).
- Experience with telemetry systems, ground software interfaces, and operational concepts for flight missions.
- Background in building and operating end-to-end mission software stacks, from embedded flight code to ground tools and monitoring systems.
- Experience with formal verification, static analysis tools, or rigorous validation approaches for high-reliability software.