This position will design and develop flight or mission-critical onboard software for UAV systems. As part of a dynamic, multidisciplinary team, the candidate will participate hands-on in the full software life-cycle, from concept through implementation, integration, and all the way to flight test.
Specifically, the candidate will:
- Define, analyze and review 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 using a model-based approach.
- Write test plans and test cases, conduct unit-, integration-, and system-level testing.
Typical software functionality for a UAS includes guidance, navigation & control, mission sequencing, payload control, redundancy and contingency management, higher-level autonomy functions, hardware-in-the-loop simulation, ground based GUIs, and aircraft subsystem control (i.e., engine, electrical system, fuel system).
Minimum Requirements (education and experience):
- B.S. in Computer Science or applicable engineering or science field, Master's degree preferred.
- 0 to 5 years of experience.
- Must be willing and able to be an active contributor (developer) in any of the software life-cycle phases.
- Must have at least one year of hands-on professional experience in at least one, ideally a combination, of the following areas:
- Must be willing to work under, and help refine, a defined software development process.
- 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.
- Significant C++ or Python experience.
- Prior experience in any of the following areas is a plus:
- Work experience or internship with developing software in an autonomous vehicle or robotics environment.
- Operating in a regulated development environment, like CMMI (level 3 or higher) or DO-178B.
- Experience in machine learning, artificial intelligence, and neural networks.
- Experience with software certification, particularly for aerospace applications.