Senior Flight Software Engineer
Job description
Senior Flight Software Engineer at Astro Mechanica.
About the role
This position is responsible for developing and operating flight software for aerospace systems where software correctness directly impacts safety and mission success. The hire will work on software that enables high-speed mobility programs serving both government and commercial customers in demanding operational environments. You will own the definition, implementation, and validation of autonomous flight software and the infrastructure used to verify its behavior under strict reliability constraints. Collaboration with other engineering teams will shape aircraft software requirements to ensure system performance targets are met in real-world conditions. A significant portion of the work involves following and improving established software lifecycle processes from initial design through testing and into operational deployment. Clear written and verbal communication is essential, as you will need to translate technical decisions into understandable explanations for cross-functional partners. You will spend time each week on planning, code review, and debugging, reinforcing that engineering impact comes from consistent execution and review, not only from writing new code.
Key facts
What you'll do
Define and implement autonomous flight software components and the validation infrastructure needed to demonstrate their reliability before deployment.
Shape aircraft software requirements in collaboration with mechanical, aerodynamic, and systems engineering teams to align software behavior with vehicle performance targets.
Own the complete software lifecycle for flight-critical systems, including design, implementation, verification, and operational support to ensure safe deployment.
Develop systems-level code in C++, Rust, or similar languages, ensuring efficient direct hardware interaction and predictable real-time performance.
Build and maintain rigorous unit tests and validation tests that exercise timing, concurrency, and fault-injection scenarios to prove software robustness.
Apply real-time systems and distributed computing principles to meet strict timing constraints and reliability goals across flight software modules.
Use debugging, performance profiling, and testing practices to identify bottlenecks and defects early in the development cycle, reducing operational risk.
Integrate software schedules and interfaces with mechanical and aerodynamic constraints, requiring foundational knowledge of controls, fluid systems, motors, or other physical systems.
Participate in design reviews and code reviews, providing and receiving feedback that improves long-term maintainability and safety of flight software.
Adapt implementation details to evolving project needs while preserving the integrity, safety, and performance of the software stack.
Support operational activities when issues are observed in the field, using telemetry and logs to diagnose and resolve software-related anomalies.
Contribute to internal tools and automation that improve the efficiency of the engineering team and the traceability of requirements and tests.
Represent the flight software discipline in cross-functional discussions, translating technical constraints into actionable work for partner teams.
Continuously refine development practices by evaluating new tools, methods, and testing approaches that can increase reliability and reduce risk.
Requirements
A Bachelor's degree in Computer Science, Engineering, Math, or a Science discipline is required, combined with 4+ years of software development experience, or 6+ years of professional software development experience.
Proficiency in C++, Rust, or similar systems programming languages is required for implementing systems-level software that interacts directly with hardware.
Real-time systems or distributed computing experience is required to design and implement software that meets strict timing and reliability constraints.
Embedded systems or Linux kernel experience is required to write code that runs close to the metal and interfaces with sensors, actuators, and control hardware.
Proven debugging, performance optimization, and unit testing skills are required to maintain high code quality and prevent regressions in safety-critical software.
Foundational knowledge in controls, fluid systems, motors, or other physical mechanics is required to correctly model and integrate software with vehicle dynamics.
The ability to explain technical decisions in plain language is required to ensure alignment between engineering, program management, and customer stakeholders.
U.S. government clearance may be required for certain project assignments, and eligibility for such clearance is a practical condition of employment.
Nice to have
Experience with formal methods or property-based testing tools that can increase confidence in safety-critical behavior.
Familiarity with aerospace, defense, or transportation domains where failure modes have high consequences.
Contributions to open-source systems software or demonstrated work with low-latency, high-throughput pipelines.
Practical notes
Work is primarily in-office five days a week to sustain collaboration and culture, supporting the team's agile rhythm of planning, standups, and reviews.
This role may require U.S. government clearance depending on project assignments, and only eligible candidates should apply.
Typical interview steps include a recruiter screen, one or two technical rounds, and final interviews focused on team fit.
Candidates often solve a coding problem, discuss past projects, and answer system design questions, with some loops including a take-home task.
Interviewers evaluate how you break down unfamiliar problems and communicate your thought process, not only whether you reach the correct answer.
Practicing a few problems aloud and reviewing your own past projects will help you prepare for the technical rounds.
Career and growth
Engineering careers at this level typically progress from individual contributor to senior, staff, and principal levels as demonstrated impact grows.
Some engineers move into management tracks and lead teams of five to twenty people, while others remain on the technical track and deepen their expertise.
Promotion criteria focus on ownership of outcomes end to end, mentorship of junior engineers, and consistent delivery of high-quality software under safety and timing constraints.
Moving up generally requires demonstrating the ability to handle increasingly complex systems, collaborate across disciplines, and influence technical direction beyond assigned tasks.
Questions to ask
During interviews, you can ask about a typical week, how work is assigned, what tools the team relies on, and how feedback and performance discussions are handled.
It is also reasonable to ask how the role has evolved recently and what the team wishes it had known before joining.
Questions about the manager's priorities, current challenges, and success metrics for the position are especially valued by the hiring team.