Software Engineer, LLVM and Production Toolchain
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.
Our team owns and maintains Low Level Virtual Machines (LLVM) based compiler infrastructure at Google which underpins several major toolchains at Google including the Clang compiler for C/C++ and the Multi-Level Intermediate Representation (MLIR) framework that is heavily used for AI/ML compilation use cases. Our charter includes feature development, tight integration of upstream OSS code into google3 toolchains, metrics development and analysis, AI driven analysis of code commits, research work in memory safe languages, and active engagement with the upstream open source LLVM community.
Individual pay is determined by factors including job-related skills, experience, and relevant education or training.US: $147000 - $210000 (USD) + 15% bonus target + equity + benefits
Learn more about benefits at Google.
Responsibilities
- Own several agentic workflows to automated engineering processes to eliminate toil.
- Work on improving various aspects of compilers, such as adding support for better compilation of large binaries, working on defining memory safety semantics in LLVM IR, improving the debugger to support non-C++ languages like Rust.
- Support integrating new versions of compilers into the toolchain, which often requires debugging and fixing failures in Google code introduced by new compiler code.
- Maintain active engagement with the open source community.
- Maintain services and tooling to integrate upstream commits into google3.
Minimum qualifications:
- Bachelor’s degree or equivalent practical experience.
- 2 years of experience programming in C++.
Preferred qualifications:
- Master's degree or PhD in Computer Science or related technical fields.
- 2 years of experience in Toolchain.
- 2 years of experience with compilers, runtimes, and system library, and experience with LLVM.