Waymo is seeking to develop the In-Vehicle Infotainment (IVI) platform for its next-generation, in-house System-on-Chip (SOC) to support its autonomous driving technology and improve the performance and reliability of its self-driving solution.
Requirements
- Deep expertise in OS Fundamentals: Strong working knowledge of the Linux Kernel (e.g., device drivers, memory management, IPC, scheduling) and embedded operating systems concepts.
- Experience Interfacing with Hardware Teams: Proven ability to read hardware specifications (datasheets, block diagrams) and effectively communicate software requirements, providing constructive technical feedback on hardware design choices.
- Proficiency in C/C++ is essential, along with experience in scripting languages (Python/Shell) for tooling and automation.
- Solid understanding of Android System Development: Hands-on experience modifying, debugging, and building AOSP, including familiarity with Android HALs, Treble/VNDK, and system debugging tools.
- Direct experience developing or integrating systems using Android Automotive OS or Android for embedded/IVI environments.
- Experience with system security fundamentals, particularly implementing or debugging secure boot and trusted execution environments (TEEs).
- Experience with system-level virtualization technologies (e.g., KVM, hypervisors, secure separation) for embedded or automotive platforms.
Responsibilities
- System Bring-up & Integration: Implement and integrate low-level software, including bootloader configuration, device trees, and kernel porting during the initial hardware bring-up phase.
- OS/Kernel Development & Optimization: Customize, optimize, and debug the Linux Kernel and relevant parts of the Android Open Source Project (AOSP) for the partner SOC, ensuring robust and efficient operation.
- Hardware Abstraction Layer (HAL) Implementation: Develop and maintain reliable Vendor HALs to interface the unique in-house hardware IP (e.g., security modules, power management units, display controllers) with the Android framework.
- Performance Engineering: Drive system-level performance optimization, including boot time reduction, scheduling tuning, thermal management, and power efficiency based on the SOC's specific architecture.
- Ambiguity Resolution: Proactively manage and clarify technical requirements for features that are still actively being defined internally, rapidly documenting and stabilizing interfaces for the broader software team.
Other
- Education: Bachelor's degree in Computer Science, Computer Engineering, Electrical Engineering, or a closely related technical field.
- Minimum 3+ years of professional software development experience, with a focus on embedded systems, low-level Android, or OS development.
- Adaptability and Initiative: Demonstrated ability to thrive in an environment where technical specifications are evolving, requiring proactive problem-solving and definition of solutions.