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. 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. You will design, develop, test, deploy, maintain, and enhance software solutions. As a part of this team, you will build the Accelerated Linear Algebra (XLA) compiler which enables Tensor Processing Unit (TPUs), Google's in-house custom designed processor, to accelerate machine learning and other scientific computing workloads for both internal Google customers and external Cloud customers.
Responsibilities
Contribute to the compiler for a novel processor designed to accelerate machine learning workloads.
Target and compile high-performance implementations of operations at distributed scale.
Design and implement new compiler passes that extract more performance out of current and next-generation TPUs, directly impacting fleet efficiency.
Collaborate closely with hardware designers to co-design future processors.
Research high-level representations to effectively program large-scale, distributed, and heterogeneous systems.
Qualifications
Minimum
Bachelor's degree or equivalent practical experience.
8 years of experience programming in C++ or Python.
5 years of experience testing, and launching software products.
5 years of experience with performance, large-scale systems data analysis, visualization tools, or debugging.
3 years of experience with software design and architecture.
Preferred
Experience with state-of-the-art ML compilers and their internals, experience writing compiler optimization passes.
Experience with debugging correctness and performance issues at all levels of the ML software stack.
Familiarity with accelerator HW architectures (TPUs/GPUs).