Software Engineer - Sensor Systems, Robot Software

Wayve Wayve · Robotics · Sunnyvale, CA · Vehicle SW Engineering

Software Engineer role focused on building and delivering high-quality, reliable C++ software for edge devices on a fleet of autonomous vehicles. Responsibilities include sensor integration, data capture, real-time system management, fault tolerance, and performance monitoring, with a focus on enabling machine learning inference on the edge and supporting the Embodied AI and Science organizations.

What you'd actually do

  1. Build and deliver software in C++ with high quality and reliability.
  2. Build software to enable full sensor integration and data capture and streaming at the scale and quality necessary for a fully autonomous vehicle.
  3. Deliver and maintain soft-real-time Linux-based applications to a fleet of embedded devices on automobiles, including data collection and storage, as well as machine learning inference on the edge.
  4. Create robust, fault-tolerant software solutions with comprehensive system diagnostics to enable us to quickly and efficiently resolve any issues preventing our deployed fleet from operating at maximum capacity.
  5. Design, implement, and use system monitoring tools to improve performance and resolve both ad hoc and systemic issues.

Skills

Required

  • Proficiency developing high-performance embedded Linux systems software in C++.
  • Demonstrated ability to manage the complete software development lifecycle from ideation through delivery & optimization
  • Experience working with automotive sensors and technologies like camera, LiDAR, radar, or localization systems (IMU, GNSS)
  • Familiarity with embedded Linux, build systems, and/or user space applications.
  • Strong understanding of how to optimally use and configure IPC middleware for high data throughput robotics applications on frameworks such as ROS or other automotive middleware
  • Knowledge of how distributed systems operate, either in cloud or robotics systems, and how to make these types of systems more scalable and performant.
  • Ability to delve deep into performance issues, stack traces, core dumps, slow disk writes, high system load, memory bottlenecks, external device bottlenecks, and threading issues.

Nice to have

  • Experience with robotics, autonomous systems, or other real-world sensing applications
  • Experience with developing software for embedded Linux systems, real-time operating systems such as QNX, and/or other automotive SoCs
  • Knowledge of networking fundamentals, including UDP/TCP, ethernet-based communications and debugging network bottlenecks in high-data-rate systems

What the JD emphasized

  • high quality and reliability
  • runs reliably at scale
  • machine learning inference on the edge
  • high data throughput robotics applications

Other signals

  • deliver software for edge devices
  • runs reliably at scale
  • machine learning inference on the edge
  • data capture and streaming at the scale and quality necessary for a fully autonomous vehicle