Staff Software Engineer, Machine Learning Compiler, Google Research
Minimum qualifications:
- Bachelor's degree in Computer Science or equivalent practical experience.
- 8 years of experience with software development in one or more programming languages (e.g., Python, C, C++, Java, JavaScript).
- 5 years of experience with compiler development or construction.
- Experience with low level virtual machines (LLVM) development, modifying LLVM as a contributor.
Preferred qualifications:
- Master’s degree or PhD in Computer Science, or a related technical field.
- Experience developing compilers using the Clang/LLVM/Multi-Level Intermediate Representation (MLIR) infrastructure, specifically for Very Long Instruction Word (VLIW) processors or Machine Learning (ML) accelerators.
- Experience in the design or management of large-scale systems and High-Performance Computing (HPC) environments.
About the job
Google's software engineers develop the next-generation technologies that change how billions of users connect, explore, and interact with information and one another. Our products need to handle information at massive scale, and extend well beyond web search. We're looking for engineers who bring fresh ideas from all areas, including information retrieval, distributed computing, large-scale system design, networking and data storage, security, artificial intelligence, natural language processing, UI design and mobile; the list goes on and is growing every day. As a software engineer, you will work on a specific project critical to Google’s needs with opportunities to switch teams and projects as you and our fast-paced business grow and evolve. We need our engineers to be versatile, display leadership qualities and be enthusiastic to take on new problems across the full-stack as we continue to push technology forward.
The Machine Learning Compiler (MPACT) team in Google Research is developing open-source, retargetable compiler infrastructure in the Low Level Virtual Machines (LLVM) and MLIR frameworks to streamline iterative processor and system co-design for the Google Tensor Processing Unit (TPU) family of processors, and to enable C/C++/Cuda High Performance Computing (HPC) codes to run efficiently on TPUs.
Google Research addresses challenges that define the technology of today and tomorrow. From conducting fundamental research to influencing product development, our research teams have the opportunity to impact technology used by billions of people every day.
Our teams aspire to make discoveries that impact everyone, and core to our approach is sharing our research and tools to fuel progress in the field -- we publish regularly in academic journals, release projects as open source, and apply research to Google products.
US: $207000 - $301000 (USD) + 20% bonus target + equity + benefits
Learn more about benefits at Google.
Responsibilities
- Build, release, and support Clang/LLVM/MLIR-based compilers, debuggers, simulators, and performance analysis tools for Google TPU accelerators.
- Optimize the TPU software ecosystem to support conventional High-Performance Computing (HPC) using C, C++, and Compute Unified Device Architecture (CUDA).
- Write TPU-specific backend code generation and optimization components, ensuring support for new hardware designs.
- Create MLIR components to translate and optimize OpenHLO, CUDA, and PyTorch programs for efficient TPU execution.

