As a Flight Controls Software Engineer, your role will be to design and implement flight control, estimation, and simulation software for an unconventional autonomous vehicle. You will be involved in all stages of development - from dynamic modeling and sub-scale testing, to designing complex control systems, and validating software and models in simulation and on full-scale aircraft.
You have an in-depth understanding of fixed-wing and rotorcraft flight dynamics, and of classical and modern flight control techniques. You have designed, implemented, and tested flight and mission control architectures, and successfully deployed them in autonomous vehicles. You have built high-fidelity simulations for software-in-the-loop and hardware-in-the-loop testing. You probably have a passion for airplanes, robots, or both!
You have a strong mathematical and engineering background. You are experienced in model-based design techniques, and deploying them within the constraints of safety-critical embedded systems. You have extensive experience with development and analysis tools in MATLAB and Simulink. You are a competent software engineer, experienced with application level software deployment, testing, debugging. You are experienced in C and C++, with a clear understanding of what happens on a hardware level. You have composed software systems with components developed in multiple languages. You can walk anyone in your organization through your systems' code. You squash the bugs that perplex others.
As our projects are "out-of-the-box" by design, you will be expected to seek, investigate, and implement creative solutions to challenges and impediments, and skillfully pivot when needed, with minimum loss of momentum. We expect you to do this with equal parts technical intuition and rigorous by-the-book protocol.
To get specific, your responsibilities will be to:
- Design and implement flight control, estimation, and simulation software for an autonomous unconventional aircraft.
- Propose and implement necessary design, development, testing tools (e.g. autocoding, version control, continuous build/test, hardware test benches, hilsim) that you deem necessary and socialize them across the team.
- Effectively communicate engineering intents with the rest of the engineering team.
- Assist the engineering and flight testing team as required.
- Make a lasting contribution to the social environment by participating in social events and proposing new ones, sharing your passions and hobbies, and spreading joy wherever you go.
We expect that you will have:
- A bachelor's degree in a relevant technical field, such as Aeronautical, Mechanical, or Software engineering.
- At least three years of experience with safety-critical software development, preferably on autonomous aircraft;
- At least three years of experience in the area of vehicle dynamics, controls, and simulation.
- Extensive knowledge of MATLAB, Simulink, and associated workflows
- Experience with C/C++ and the GNU toolchain.
- Experience with Git or another DVCS.
- Familiarity with Agile methods, and related tools, e.g. JIRA, Bitbucket.
- Comfort in working across major platforms.
- Excellent communication skills