Software Engineer (Motor Controls)

Zipline
San Francisco, United States of America
2 days ago

Role details

Contract type
Permanent contract
Employment type
Full-time (> 32 hours)
Working hours
Regular working hours
Languages
English
Experience level
Senior
Compensation
$ 225K

Job location

Remote
San Francisco, United States of America

Tech stack

Systems Engineering
Big Data
C++
Linux on Embedded Systems
Firmware
Python
Matlab
Monte Carlo Methods
Real-Time Operating Systems
Regression Testing
Robotic Automation Software
Systems Integration
Bare Metal
Software Coding

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

Requirements

  • A systems-engineering mindset, and an eye for finding efficient solutions to problems that may lie outside your core competencies
  • Some experience with mechatronic control systems: hobby projects or professional experience are applicable
  • 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
  • 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
  • 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
  • Eagerness to learn in a fast-paced safety-critical environment
  • A background in electronics design would be appreciated, but is not required
  • Fluency in C/C++, and excitement about writing code in Rust and Python
  • If you like the sound of this position but are not sure if you are the perfect fit, please apply!

Apply for this position