Software Engineer, Flight Software
Job description
About the role
Join the team building the Starship transportation system to help make human life on Mars a reality. You will create and maintain software that controls and simulates the most powerful launch vehicle ever designed. In this capacity, you will own the design and implementation of critical flight software components that directly influence vehicle behavior and mission success. Your work will ensure that simulations accurately reflect real-world dynamics and that the software stack remains robust under demanding test conditions. You will be responsible for translating complex system requirements into reliable code that interfaces with both hardware and higher-level mission systems. This role requires a disciplined approach to software engineering where attention to detail directly supports safety and performance goals. You will collaborate daily with experts across disciplines to solve challenging problems that span control theory, simulation fidelity, and operational procedures. Ultimately, your contributions will help advance the development of a transportation infrastructure capable of supporting human exploration beyond Earth.
Key facts
What you'll do
- Build autonomous software and simulations to validate system performance under a wide range of operating conditions.
- Manage the full software development lifecycle from initial design through testing, integration, and continuous improvement in a mission-critical context.
- Collaborate with cross-functional engineering teams to support vehicle and launch pad operations with reliable and timely software solutions.
- Maintain high engineering standards across all layers of the stack, including firmware, networking, operating systems, and applications that interact with flight hardware.
- Develop and maintain simulation environments that accurately model vehicle dynamics to support verification and validation activities.
- Implement robust software architectures that can scale to meet the demands of complex mission scenarios and evolving system requirements.
- Diagnose and resolve intricate software issues by analyzing logs, telemetry, and test data to identify root causes and inform corrective actions.
- Partner with hardware and systems engineering teams to ensure seamless integration between software modules and physical components.
- Write clean, maintainable, and well-documented code that adheres to strict coding standards and supports long-term maintainability.
- Contribute to the refinement of development processes and best practices to improve software quality and team efficiency over time.
- Support testing campaigns by developing tools and frameworks that enable efficient execution of test scenarios and rapid iteration.
- Work within a highly iterative environment where software changes can directly affect vehicle testing schedules and mission timelines.
- Apply creative problem-solving to overcome constraints imposed by real-time performance, safety requirements, and system reliability.
- Act as an owner of software quality, proactively identifying risks and communicating them to stakeholders in a clear and constructive manner.
Requirements
- Bachelor degree in computer science, software engineering, computer engineering, electrical engineering, or a related field; OR at least 2 years of professional software development experience.
- Ability to work extended hours and weekends when necessary to meet critical project milestones and support testing activities.
- Must be a U.S. citizen, lawful permanent resident, refugee, or asylee to meet ITAR requirements.
- Demonstrated experience writing software in performance-critical contexts where correctness and timing are essential.
- Strong understanding of operating systems concepts, concurrency models, and low-level programming techniques.
- Capability to read and interpret technical specifications and translate them into functional software components.
- Willingness to follow detailed instructions and adhere to strict engineering processes in a regulated environment.
- Commitment to maintaining a high level of professionalism when working in teams that depend on precise and dependable software.
Nice to have
- Proficiency in C++, Rust, or other systems programming languages.
- Experience with real-time embedded systems or distributed computing.
- Familiarity with physical mechanics, fluid systems, motor design, electronics, or controls.
- Strong critical thinking and first-principles problem-solving skills.
- Ability to thrive in a fast-paced environment with high levels of accountability.
Practical notes
- Salary range for Level I: $125,000 to $145,000 per year.
- Salary range for Level II: $145,000 to $175,000 per year.
- Total rewards include potential stock options, long-term cash awards, discretionary bonuses, and an Employee Stock Purchase Plan.
- Benefits include medical, dental, and vision coverage, 401(k), disability and life insurance, paid parental leave, 3 weeks of vacation, and 10 or more paid holidays.
- This role is based in Hawthorne, Canada, and is available as a full-time position.
- Candidates must meet all eligibility requirements, including citizenship or legal residency as defined by ITAR regulations.
- No sponsorship is available for this role at this time.
- Applicants are encouraged to submit a complete application that clearly demonstrates how their background aligns with the stated requirements.