Senior Embedded Software Engineer

Joby Aviation Joby Aviation · Robotics · Santa Cruz, CA · Software

Senior Embedded Software Engineer responsible for designing and implementing embedded C++ software for electric-powered, fly-by-wire aircraft, collaborating with systems engineers and hardware designers on safety-critical projects like communication systems, motor inverters, and flight control computers.

What you'd actually do

  1. You will be responsible for designing and implementing the embedded C++ software that runs on our electric-powered, fly-by-wire aircraft. You’ll also collaborate with systems engineers and hardware designers to author software requirements and integrate complex systems. You will be involved in all facets of our software design and development.
  2. Communications and Networking System - Contribute to the embedded software and design that is the communications backbone of the Joby aircraft.
  3. Motor Inverter – Contribute to the software that operates and manages the electric motors of our Joby aircraft.
  4. Flight Control Computer - work with all parts of the aircraft software team to provide a robust and testable Hardware Abstraction Layer to support simulation and hardware emulation. Collaborate with systems engineers and hardware designers to author software requirements and integrate specialized hardware into a unified framework.
  5. Flight Critical Subsystems - All the aircraft’s subsystems are fully designed by Joby. The Joby Embedded Software team is responsible for all the software that makes the aircraft fly. There are opportunities to join various other software projects. Having a strong understanding of system, software, microcontroller, and FPGA designs are all desired.

Skills

Required

  • C++
  • Object-oriented programming
  • Embedded software development
  • Microcontroller architectures (ARM Cortex-M0/M3/M4/A8/A9)
  • Communication protocols (MDIO, I2C, SPI, UART)
  • Test and measurement equipment (oscilloscopes, logic analyzers, protocol analyzers, voltmeters)
  • Integrated development environments and debuggers

Nice to have

  • DO178C process
  • Real-time operating systems

What the JD emphasized

  • 7+ years of industry experience
  • Expert knowledge of C++
  • Demonstratable understanding of hardware from an embedded software engineer's perspective
  • Experience with modern integrated development environments and debuggers
  • Hands-on experience with test and measurement equipment
  • Understanding of modern microcontroller and microprocessor architectures
  • Knowledge of object-oriented programming methodology and multi-layered system architectures
  • Knowledge of and experience with communication protocols including MDIO, I2C, SPI, UART, etc.