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
$ 225KJob 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!