Jobs · Engineering · California

Senior Software Engineer - Motor Controls

Zipline · South San Francisco, CA · 1 mo ago
Engineering$155k–$225k/yrFull-time

About the Role

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.

Responsibilities

  • 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.
  • Validate 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.

Requirements

  • Fluency in C/C++, and excitement about writing code in Rust and Python.
  • Eagerness to learn in a fast-paced safety-critical environment.
  • Some experience with mechatronic control systems: hobby projects or professional experience are applicable.
  • 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.
  • 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.
  • Strong executive communication skills, to efficiently communicate about your work with stakeholders outside your technical domain.
  • You must be able to work on-site in South San Francisco, CA.

A background in electronics design would be appreciated, but is not required.

Pay

The starting cash range for this role is $155,000 - $225,000. The final cash pay will depend on a variety of factors, including a candidate’s experience, qualifications, skills, working location, and projected impact. The total compensation package may also include equity compensation, discretionary annual or performance bonuses, sales incentives, and benefits such as medical, dental, and vision insurance, and paid time off.

Similar jobs