Aurora Flight Sciences, A Boeing Company is a world leader in the development of highly autonomous aircraft. Our mission is to change the way we travel by applying autonomy and robotics to the development, production and operation of advanced aircraft.
The Software division specializes in developing software in the unmanned aerospace system markets
This position designs and develops high integrity flight and mission-critical onboard software for UAV systems and delivers integrated and tested software in the unmanned aerospace system markets. The main purpose of this position is to shape the requirements, design and implement target hardware software, fully integrate and test software and support flight testing. This position generates software with a high degree of safety-critical rigor.
Aurora’s work environment provides significant responsibility and authority to implement robust, cost-effective, and high-performing technical solutions. As part of a dynamic, multidisciplinary team, this engineer participates hands-on in the full software life-cycle, from concept through implementation, integration all the way to flight test. This activity requires collaboration with other engineering disciplines in planning, design and development of systems to ensure software and hardware performance and compatibility. The position also requires authoring test plans and test cases, conducting unit, integration, and system-level testing. Typically, the applicant will use toolsets that support applications that run-in space and time partitions. These are typically on a real-time operating system executing on a wide range of processor families.
Aurora utilizes a structured, model-based-design approach to develop the flight control and associated software systems to fly autonomous aircraft. Aurora’s development environment requires sufficient rigor to pass challenging criteria for flight-critical software. We also tailor this approach to enable very efficient use of our developer’s time. Aurora structures our unit test approach to automate unit testing as much as possible. The use of MBD and appropriate rigor enables this approach.
Typical software functionality for a UAS includes guidance, navigation & control, mission sequencing, payload control, redundancy and contingency management, uplink and downlink packet encoding and decoding, converting between different serial protocols, hardware-in-the-loop simulation, ground based GUIs, and aircraft subsystem control (i.e., engine, electrical system, fuel system).
- Define, analyze and review system & software requirements to meet defined and anticipated customer needs and system quality and performance standards.
- Collaborate with other engineering disciplines in planning, design and development of systems to ensure software and hardware performance and compatibility
- Design software architecture and interfaces and implement functionality, typically using a model-based approach. Additional activities may involve developing in C/C++, Java and other programming languages.
- Write test plans and test cases, conduct unit-, integration-, and system-level testing.
- B.S. in Mechanical/Computer/Electrical Engineering or applicable engineering or science field, Masters degree preferred.
- Must be a US Person (US citizenship or green card)
- 10+ years of professional experience in a related field
- Must have at least one year of demonstrated, hands-on professional experience in at least one, ideally a combination, of the following areas:
- Model-based design and/or test using the Simulink/Stateflow tool chain.
- Software development in a relevant subject matter area: UAS or other robotic system guidance, navigation and control; ground- or airborne mission systems; general aerospace flight control or cockpit avionics systems; ground stations; payload control.
- Development/operations of hardware-in-the-loop simulators, conducting testing and troubleshooting of HW/SW interfaces.
- Open Architecture oriented systems applied to complex aerospace or military systems (C2, payload data, etc.)
- Demonstrated capability to have personally developed (i.e. modeled or written) safety-critical aircraft software design with the past 24 months.
- Must be willing to work under, and help refine, a defined software development process.
- Engineers considered for a lead position must have demonstrated deliveries in an equivalent position.
- Work experience or internship with developing production software in an autonomous vehicle or robotics environment.
- Operating in a regulated development environment, like CMMI (level 3 or higher) or DO-178C.
- Using the IBM DOORS Requirements Management software.
- Using Mathworks Simulink/Stateflow to develop auto-generated production code.