
Senior Software Engineer (Motor Controls)
Zipline
Job description
-
As a Senior Motor Control Engineer at Zipline, you’ll be responsible for shipping high-performance motor controller firmware for Zipline’s family of proprietary motor controllers
-
Expect to work closely with electrical engineers, structures and mechanism designers, flight software developers, and test-site operations teams
-
Our close-knit engineering culture presents a unique opportunity to learn from a strong multi-disciplinary team, and lets you swiftly ship features that are clearly linked to the delivery experience
-
We use C++ in our firmware development, with Rust and Python for tooling that will be deployed to our production systems in the field
-
The team uses hardware- and software-in-the-loop test infrastructure to validate new features and regression test existing functionality
-
You’ll often be querying large data-sets from our test operations to make high-quality data-driven engineering decisions and build prototypes of new algorithms
-
You’ll build analyses in Matlab, Julia, or Python to prove the performance of your controls designs, and execute Monte-Carlo simulations to validate complex dynamics
-
Design estimators and controllers for propulsion motors and actuators, in close collaboration with the vehicle controls team
-
Implement these controllers in C++, targeting a bare-metal ARM microcontroller
-
Write peripheral drivers for new revisions of Zipline’s motor controller hardware
-
Get your hands dirty validating your firmware on the bench and in flight tests
-
Understand and improve the reliability of the flight software system as a whole, working with hardware and systems engineers to develop comprehensive fault management strategies and hardware-in-the-loop tests
-
Build vehicle simulations in Rust to validate and regression test Zipline’s firmware
-
Collaborate with electrical engineers to bring-up and validate new inverter designs
-
Build and maintain automated systems to monitor the performance of our fleet and direct maintenance activity- Experience supporting robotic systems in the real-world, in particular addressing the long-tail of edge-cases and rare events to guarantee safety, reliability, and performance
-
A systems-engineering mindset, and an eye for finding efficient solutions to problems that may lie outside your core competencies
-
You must be able to work on-site in South San Francisco, CA
-
Eagerness to learn in a fast-paced safety-critical environment
-
Curiosity and a willingness to work in a variety of embedded environments, from running on bare metal, to using a RTOS and integrating with embedded Linux
-
Strong executive communication skills, to efficiently communicate about your work with stakeholders outside your technical domain
-
Fluency in C/C++, and excitement about writing code in Rust and Python
-
Some experience with mechatronic control systems: hobby projects or professional experience are applicable
-
A background in electronics design would be appreciated, but is not required