Senior Embedded Software Engineer

South San Francisco, CA
Full Time

Volley is seeking a Senior Embedded Software Engineer to lead the development of embedded software across the platform.

The ideal candidate will be an experienced software engineer with solid C/C++ skills. Constrained settings (memory, compute resources) with real time needs is a comfortable environment for you where you select compute architectures and software design choices (e.g., RTOS vs. baremetal) based on experience and careful requirement gathering.

You are familiar with modern development practices, and are comfortable owning your portions of the system. Overall you love to prototype and build things, find robust and simple solutions to complex technical problems, and want to ship software to make a real-world impact.


  • Implement new features and isolate existing software with real time needs. Identify the compute architecture and OS (RTOS, which RTOS, or bare metal), communication & serialization protocol, gather requirements and compute performance metrics. Make incremental progress (bench test, ship increments where possible) and perform test automation, plus implement bootloaders (OTA) to update every aspect of the embedded software we control
  • Collaborate with the team (electrical, mechanical, software, networking) on architecture and infrastructure choices on cross functional features such as reliable full garage emergency stop functionality
  • Support system integration, test, and debug; participate in demonstrations and pilot deployments


  • Proven experience designing deterministic (real time) software within constrained resources (memory, processing)
  • Experience with the design of redundant hardware and software systems
  • Strong knowledge of Embedded C/C++
  • Experience with Ethernet based communication protocols and IPC mechanisms
  • Experience with communication protocols such as RS232, RS422, I2C, SPI, JTAG
  • Experience with CAN bus systems and associated tools
  • Experience with data serialization protocols for embedded systems
  • Collaboration with Linux (and similar) application stack (i.e., define common interfaces, tests) and excitement to dive into more of the “higher-level” general and robotics software when needed.
  • Strong communication skills (e.g., requirements management)

Nice to have

  • Experience with Safety Critical Embedded Systems
  • Experience with Real time operating systems (RTOS)
  • Test automation like Hardware-in-the-loop (HIL) systems
  • Experience with different types of sensors and environmental sensing systems
  • Experience with ROS or other robotics middleware platforms.
  • Knowledge of bootloaders and implementation with various communication protocols
  • Familiar with FMEA process
Applicant must provide proof of his or her eligibility to work in the United States if selected for hire.

Volley Automation is an equal opportunity employer to all, regardless of age, ancestry, association with a member of a protected class, bereavement leave, color, disability (physical, intellectual/developmental, or mental health/psychiatric), exercising the right to family care and medical leave related to serious health condition of employee or family member, child bonding, or military exigencies, engaging in protected activity, gender identity or expression, genetic information or characteristic, marital status, medical condition (cancer or genetic characteristic), military and veteran status, national origin (includes language restrictions), pregnancy, childbirth, breastfeeding, or related medical conditions, Pregnancy Disability Leave (PDL), race (includes hairstyle and hair texture), religious creed (includes dress and grooming practices), reproductive health decision making, sex/gender, and sexual orientation.
The target base salary range for this position $150000 - $220000 annually.

Apply for this position

Apply with Indeed
We've received your resume. Click here to update it.
Attach resume as .pdf, .doc, .docx, .odt, .txt, or .rtf (limit 5MB) or Paste resume

Paste your resume here or Attach resume file

Human Check*