Software Engineer, Mission Autonomy
Job description
About the role
Join Mach Industries as a Software Engineer specializing in Mission Autonomy, where you will be instrumental in crafting software that translates mission goals into dependable autonomous actions for our aerial systems. This position focuses on the design and development of functionalities for mission planning, decision-making, task execution, and managing contingencies. You will bridge the gap between high-level mission objectives and the autonomy of vehicles, integrating with flight software, perception systems, and ground control operations.
Key facts
What you'll do
- Design, implement, and deploy mission autonomy software utilizing contemporary C++.
- Develop Python-based tools for tasks such as analysis, simulation, test automation, and mission assessment.
- Create software solutions for mission planning, task sequencing, behavior orchestration, and state management.
- Construct decision-making and contingency systems that adapt to vehicle health, sensor availability, and environmental factors.
- Convert operational concepts and requirements into autonomous behaviors and software interfaces.
- Integrate mission software with flight control systems, navigation, perception, and communication frameworks.
- Establish clear interfaces that connect high-level mission logic with low-level vehicle capabilities.
- Develop systems that maintain functionality even in scenarios with compromised communications, GNSS, or sensing capabilities.
- Facilitate multi-vehicle mission execution and collaborative operational behaviors.
- Design simulation scenarios and conduct software-in-the-loop and hardware-in-the-loop testing.
- Define metrics for mission performance and create tools to assess mission completion and reliability.
- Analyze telemetry, logs, and flight data to enhance system performance.
- Collaborate with teams focused on flight software, guidance, navigation, control, perception, and hardware.
- Engage in ground and flight testing, including troubleshooting in real-world environments.
- Contribute to software architecture, participate in code reviews, and maintain technical documentation.
Requirements
- Proficient in modern C++ and Python programming languages.
- Experience in developing production-level software within a Linux environment.
- Background in creating software for autonomous systems, robotics, or aerospace applications.
- Practical experience in implementing mission autonomy features, such as task planning, behavior trees, or state machines.
- Strong grasp of software architecture, interfaces, concurrency, and system-level debugging techniques.
- Capability to produce clean, testable, maintainable, and well-documented code.
- Experience in transitioning software from prototype stages through integration, testing, and deployment on actual hardware.
- Skill in diagnosing issues through logs, telemetry, and observed system behavior.
- Demonstrated technical ownership and the ability to collaborate across various engineering disciplines.
- Excellent written and verbal communication abilities.
- Strong engineering judgment in balancing mission effectiveness with safety and reliability.
Nice to have
- Over three years of professional experience in software development for autonomous vehicles, UAVs, or defense systems.
- Familiarity with autonomous aerial vehicles or optionally piloted aircraft.
- Experience in designing mission planners, behavior trees, or executive systems.
- Knowledge of multi-agent systems, collaborative autonomy, or swarm coordination techniques.
- Understanding of guidance, navigation, control, state estimation, or motion planning principles.
- Experience in designing software for environments with intermittent or limited communication bandwidth.
- Background in fault detection, graceful degradation, and managing safety-critical states.
- Experience deploying software on embedded Linux systems or platforms with limited resources.
- Familiarity with simulation techniques, software-in-the-loop, hardware-in-the-loop, or automated mission evaluation processes.
- Experience in developing ground-control or human-machine interface software.
- Participation in flight testing, range operations, or field deployments.
- Proficiency in Rust for systems programming or safety-critical applications.
Skills & tools
- C++
- Python
- Linux
Practical notes
This role may necessitate access to information that is protected under U.S. export control laws. Consequently, any employment offer may depend on the ability to receive controlled software or technology without the need for sponsorship for an export license. Mach Industries participates in E-Verify. Salary offers will be determined based on experience, education, skills, and business considerations, with competitive equity grants included in most offers. Mach provides a range of benefits, including health insurance and retirement plans.