Software Engineer, Post-Silicon Testing
Waymo's Compute Team is tasked with a critical and exciting mission: We deliver the compute platform responsible for running the autonomous vehicle's software stack. To achieve our mission, we architect and create high-performance custom silicon; we develop system-level compute architectures that push the boundaries of performance, power, and latency; and we collaborate with many other teammates to ensure we design and improve hardware and software for maximum performance. We are a diverse team looking for curious and talented teammates to work on one of the world's highest performance automotive compute platforms.
This role follows a hybrid work schedule and you will report to a Software Engineering Manager.
This position will require the ability to work some hours that align with the team in the Pacific Time zone on an as needed basis.
You will:
- Design and develop scalable software frameworks for automated post-silicon validation.
- Translate hardware databook instructions (register maps, timing diagrams) into robust C++ code for hardware/software interaction.
- Build and maintain sophisticated automation scripts using Python and Bash to manage complex test sequences.
- Debug software-to-hardware communication issues, working closely with hardware designers to ensure register-level accuracy.
- Improve the efficiency of existing validation software to reduce test cycle times.
You have:
- Bachelor's degree in Computer Science or Electrical Engineering
- Strong Proficiency in C++: Experience with pointers, memory management, and low-level system programming is mandatory.
- Advanced Scripting: Expert-level Python skills, specifically for automation and data analysis.
- Software Engineering Fundamentals: Solid understanding of data structures, algorithms, and object-oriented design.
- Experience with Bash/Unix environments for toolchain management.
- Willingness to Learn Hardware: While a background in silicon is helpful, the primary requirement is the ability to apply rigorous software engineering principles to hardware validation.
We prefer:
- Knowledge of hardware IP blocks (e.g., PCIe, DDR, USB).
- Experience with JTAG, I2C, or SPI protocols.
- Previous experience in post-silicon validation or embedded systems.