Waymo is the self-driving technology company with a mission to make it safe and easy for people and things to move around. Building on software and sensor technology developed at Google, Waymo is now launching the world’s first fully self-driving transportation service that will take members of the public from A to B at the touch of a button.
The Waymo Onboard Infrastructure team is responsible for low-level software and infrastructure on various components of the Waymo self-driving system. The team’s scope covers everything from low-level system software to high-bandwidth data logging, IPC (low-latency and high-throughput), performance analysis, full-system debugging, etc. We work closely with the Hardware, Sensor, Perception, Behavior/Planning and Machine-Learning teams to build the most performant and low-latency self-driving solution in the industry.
We are looking for strong Software Engineers to develop and deploy Android System Software and firmware on a high-end Infotainment platform based on Android Auto. This device aims to inspire trust in the self-driving system by visualizing the sensor data and car actions in a meaningful and beautiful way.
In this Systems Software Engineering role, you will:
- Integrate and port SoC Android BSP to Waymo hardware platforms
- Bring-up new hardware device(s) to run Android OS, working with SoC vendors and other partners
- Work with the Vehicle Integration team to enable needed functionality in Android-based devices (e.g. rear-view camera, multiple displays, etc.)
- Develop, review, port, test, and debug Linux device drivers and Android HAL implementations
- Ensure the stability and robustness of the System Software through production and launch
- Work effectively across a variety of engineering teams and SoC partners to resolve issues
- Design, develop, test, deploy, maintain and improve software.
- Manage individual project priorities, deadlines and deliverables.
- Improve the quality, functionality and security of the platform and devices
At a minimum we’d like you to have:
- BA/BS degree in Computer Science, Computer Engineering or relevant technical field or equivalent practical experience
- 5+ years of relevant work experience.
- Development experience within embedded systems/firmware design
- Experience coding in C/C++
- Experience with Linux kernel and device driver development
- Experience in dealing with complex systems and codebases (HALs, sub-systems, etc)
- Experience bringing up Android devices
- Experience with Android system software and Android HALs
It’s preferred if you have:
- MS or PhD degree in Computer Science, Computer Engineering, Electrical Engineering or related field
- Experience with ARM SoCs, Linux Kernel and Embedded Software
- Experience with working with multiple types of industry partners (CM, ODM, OEM, ISV, etc.)
- Working knowledge of at least one of the following technologies: Ethernet AVB, Audio HW Codecs, A/V processing (e.g. DSP), Display/Camera serializer/deserializers, Secure Boot
- Experience with common peripheral bus technologies including SPI, I2C, UART, etc.
- Knowledge of one or more of the following: Microcontrollers, SoC, device drivers, hardware bringup, power management, ARM processors, performance optimization, bootloading, hardware/software integration.
- Experience with Android frameworks
- Motivated with an inclination to take on complex and ambiguous problems
We appreciate your interest in Waymo. Waymo is an equal employment opportunity employer. Waymo’s policy is not to discriminate against any applicant or employee based on race, color, sex, religion, national origin, age, disability, military status, genetic information or any other or any other characteristic protected by law. Waymo also prohibits harassment of applicants or employees based on any of these protected categories. Waymo will also consider for employment qualified applicants with criminal records in accordance with applicable law. Waymo also makes workplace accommodations for qualified individuals with disabilities as required by applicable law.