Relativity Space

Senior Software Engineer, Flight Software

Long Beach, CA, US

Hybrid
Full-time
7 months ago
Save Job

Summary

About the Team: The Flight Software team is responsible for developing real-time and mission critical software to support the Terran R program including engine testing, stage testing, and static fire and launch operations. The team is responsible for the full life cycle of software, from working with GNC, Propulsion, Avionics teams to define functional and performance requirements, to developing the software, unit testing, developing CI/CDs, and then testing it against our various test platforms with physics sims. This team is responsible for the delivery of reliable and robust software that directly controls the Terran R rockets to reach orbit and perform Entry Descent and Landing. About the Role: Aerospace experience isn't required. We value driven engineers with strong computer science fundamental who collaborate well to solve meaningful problems. As a Senior Flight Software Engineer, you will have a major role in the full life cycle of Flight Software from gathering requirements, defining architecture, development, integration to the commissioning and support of test and launch operations. You'll work closely with GNC engineers to integrate complex algorithms for vehicle ascent and re-entry, descent and landing, and closely with Embedded Software Engineers and Avionics to integrate vehicle sensor data such as GPS, IMU, Radar, and to control vehicle equipment such as valves, thrust vector controls, and landing grid fins. This role is expected to be on-site 3x a week in our Long Beach, CA headquarters. * Write concise documentation such as Concept of Operations, Interface Control Documents, and Software Design Documents. * Architect and deliver core flight software with a strong focus on meeting system and performance requirements such as latency, allowed jitter, and control frequency. * Develop telemetry system that prioritizes, filters, stores and forwards, and encodes/decodes telemetry to RF format, and routes that data through ground stations and to data centers. * Support the development and integration of testing infrastructure such as HITL (Hardware-In-The-Loop) and HOOTL (Hardware-Out-Of-The-Loop) and physics and fluid sims. * Build automated unit, integration and system level tests in CI/CD. * Focus on maximizing the team's velocity by defining processes, best practices, integrating modern tools and technologies, and mentoring junior engineers. About You: * An undergraduate or graduate degree in a relevant engineering discipline (Electrical Engineering, Computer Engineering, Computer Science, Aerospace Engineering) with 5+ years experience of production development experience. * Deep professional experience and technical expertise delivering production-level and real time embedded software. * Expert in Rust, C++, and/or other system languages, as well as algorithms and data structures. * Expert in Linux Operating System concepts such as memory management, CPU shielding, scheduling, etc. * Expert in networking concepts such as TCP/IP, UDP. * Experience with software development processes including: source control, bug tracking, and CI/CD. Nice to haves, but Not Required: * Experience with developing software to a safety standard and achieving formal certification with a governing body (e.g. NASA, FAA, FDA, etc.). * Familiarity with performing Hazard Analysis, FMEA (Failure Mode and Effect Analysis) and Root Cause Analysis, and familiarity with FDIR (Fault Detection Isolation, Recovery) concepts. * Experience with developing fault and failure tolerant system and knowledge of voting and internal state synchronization. * Experience with systems-level programming like synchronization primitives, memory management, etc. * Experience with different inter-process communication methods. * Experience with message passing protocol such as flatbuffer or protobuf.

How strong is your resume?

Upload your resume and get feedback from our expert to help land this job