Waymo logo
Waymo Verified
Autonomous Vehicles, Artificial Intelligence, Robotics, Automotive

Senior Software Engineer, GPU

Mountain View, CAHybridFull TimeSenior$213,000–$263,000 /yrPosted 25 days agoVisa sponsorship available

Is this role right for you?

Upload your resume and get a skill-by-skill breakdown — see exactly where you match, where you're close, and what to highlight. Not a mystery percentage.

Get a tailored resume highlighting what this role needs.

Required skills

  • GPU
  • CUDA
  • C++
  • performance analysis tools
  • debuggers
  • GPU software stack
  • GPU hardware characteristics
  • EECS

Nice to have

  • GPU kernel performance
  • compilation flow
  • driver stack
  • Linux driver
  • embedded firmware
  • heterogeneous platforms

Role summary

Waymo's Compute Team is seeking a Senior Software Engineer specializing in GPUs to develop high-performance compute platforms for autonomous vehicles. This role involves architecting and creating custom silicon, developing system-level compute architectures, and optimizing hardware and software for maximum performance. You will work on GPU primitives, abstractions, and testing infrastructure, collaborating with internal and external partners. The ideal candidate has expertise in C++ for GPU (CUDA), a solid understanding of GPU software and hardware, and experience with performance analysis tools.

Waymo is an autonomous driving technology company with the mission to be the world's most trusted driver. Since its start as the Google Self-Driving Car Project in 2009, Waymo has focused on building the Waymo Driver—The World's Most Experienced Driver™—to improve access to mobility while saving thousands of lives now lost to traffic crashes. The Waymo Driver powers Waymo’s fully autonomous ride-hail service and can also be applied to a range of vehicle platforms and product use cases. The Waymo Driver has provided over ten million rider-only trips, enabled by its experience autonomously driving over 100 million miles on public roads and tens of billions in simulation across 15+ U.S. states.

Waymo's Compute Team is tasked with a critical and exciting mission: We deliver the compute platform responsible for running the fully 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 closely with many other teammates to ensure we design and optimize hardware and software for maximum performance. We are a multidisciplinary team seeking curious and talented teammates to work on one of the world’s highest performance automotive compute platforms.

In this hybrid role, you will report to an Engineering Manager.

You will:

  • Develop high-performance GPU primitives and abstractions to enable Waymo to scale its accelerator codebase across diverse GPU backends
  • Collaborate with Waymo's internal hardware team and external partners on SoC projects with a focus on the GPU portion
  • Manage the bring-up, correctness, and performance of the Waymo onboard stack on new GPU platforms
  • Contribute to testing infrastructure that enhances the CI/CD flow for GPUs, detects bugs early, and generates automated alerts to maintain the GPU stack's functionality and performance
  • Create profiler and debugger tools for new GPU platforms
  • You have:

  • Expertise in C++ programming for GPU (CUDA or similar framework)
  • Bachelor degrees in EECS, coupled with a minimum of five years of industry experience
  • Solid understanding of GPU software stack
  • Solid understanding of key GPU hardware characteristics that are important to GPU SW efficiency
  • Proficiency in utilizing performance analysis tools and debuggers
  • Enthusiasm for developing the complete GPU software stack, from the hardware level to real-world applications
  • We prefer:

  • Master/doctorate degree in EECS
  • Prior excellence in landing solid, sophisticated, and efficient solutions at any level of the GPU stack
  • Deep insights into GPU kernel performance, compilation flow, and driver stack
  • Knowledgeable of Linux driver and embedded firmware
  • Ability to quickly ramp on a diverse set of heterogeneous platforms and start solving problems
  • Clear technical communicator, good leader and collaborator
  • Familiarity with GPU libraries such as Thrust, CUB, CUTLASS, or Eigen
  • Experience contributing to open-source compiler projects such as LLVM or SPIR-V
  • The expected base salary range for this full-time position across US locations is listed below. Actual starting pay will be based on job-related factors, including exact work location, experience, relevant training and education, and skill level. Your recruiter can share more about the specific salary range for the role location or, if the role can be performed remote, the specific salary range for your preferred location, during the hiring process.

    Waymo employees are also eligible to participate in Waymo’s discretionary annual bonus program, equity incentive plan, and generous Company benefits program, subject to eligibility requirements.

    Salary Range$213,000—$263,000 USD

    Sample Waymo interview questions

    • 1

      Design a data ingestion system

      system designmedium
    • 2

      Design a simulation-based regression detection system for code changes

      system designhard
    • 3

      Longest Substring with Two Distinct Characters Find the longest substring with at most two distinct characters. Input: s = "ccaabbb" Output: 5 Explanation: The substring "aabbb" contains exactly two distinct characters and has a maximum length of 5.

      codingmedium
    • 4

      Alien Dictionary Order Derive the alien dictionary order from a sorted list of alien words. Input: words = ["z","x","z"] Output: "" (Empty String) Explanation: The letter 'z' cannot come before 'x' and then suddenly after 'x', creating a cycle and making the dictionary invalid.

      codingmedium
    • 5

      Palindrome After Deleting One Character Determine if a string can be a palindrome after deleting at most one character. Input: s = "abc" Output: FALSE Explanation: Deleting any single character leaves either "ab", "bc", or "ac", none of which result in a valid palindrome.

      codingmedium

    Get started to unlock a personalized interview prep pack for this role.

    Ready to apply?
    You'll be redirected to Waymo's application page.

    Similar roles

    See how RiseMe works

    Match, tailor, and prep so you send fewer applications and land more interviews.