Software Engineer

Bengaluru, Karnataka, India
Jan 22, 2025
Jan 22, 2026
Onsite
Full-Time
3 Years
Job Description

As a Software Engineer specializing in Machine Learning Compilers at Google, you will play a pivotal role in shaping the next generation of custom silicon solutions, driving performance and efficiency in machine learning (ML) workloads. You will be part of a diverse team that pushes boundaries in developing custom hardware accelerators designed to revolutionize Google’s direct-to-consumer products.

In this role, you will focus on building, testing, and optimizing compilers and tools that map complex ML models to custom hardware accelerators. This is a unique opportunity to work at the intersection of software, hardware, and machine learning technologies, directly influencing cutting-edge advancements in both software design and hardware acceleration.

Key Responsibilities

  1. Develop Compilers and Tools for Machine Learning. You will design and build domain-specific compilers that translate machine learning models into efficient machine code for execution on custom hardware accelerators, such as Google's Tensor Processing Units (TPUs).
  2. Optimize Performance and Efficiency. Evaluate and implement various parallelization strategies to optimize machine learning models for performance, power efficiency, energy consumption, and memory usage on TPUs. Your optimizations will directly impact the speed and efficiency of Google's product portfolio, ensuring a seamless and high-performance experience for end-users.
  3. Collaborate Across Teams. Work closely with machine learning researchers to enhance the functionality of the ML compilers, incorporating cutting-edge research to ensure the best possible performance. Collaborate with hardware engineers to design and evolve future accelerators, ensuring tight integration between software and hardware.
  4. Evaluate Trade-offs. Analyze and make decisions on trade-offs involving various parallelization strategies, focusing on balancing performance and resource consumption while ensuring that the final product meets Google's rigorous performance standards.
  5. Work on Security Assurance. Contribute to the development of Information Security Assurance mechanisms to ensure that the hardware-software stack is secure and resilient to potential vulnerabilities.
  6. Drive Innovation. Be part of a forward-thinking team that is at the forefront of technological advancements in hardware acceleration and machine learning. Your work will help shape the future of computing, impacting billions of users and setting new industry standards.

Minimum Qualifications

  1. Educational Background. A Bachelor’s degree in Computer Science, a related technical field, or equivalent practical experience in software development and engineering.
  2. Software Development Experience. A minimum of 5 years of experience in software development, particularly with C++ and a strong understanding of data structures and algorithms. This foundation will enable you to effectively write and optimize code for custom hardware accelerators.
  3. Experience in Testing and Maintenance. At least 3 years of experience in testing, maintaining, or launching software products, with a minimum of 1 year spent on software design and architecture, ensuring scalability and performance.

Preferred Qualifications

  1. Advanced Education. A Master’s degree or PhD in Computer Science or a related technical field, demonstrating deep technical knowledge and research capability in relevant areas such as compilers, machine learning, and hardware optimization.
  2. Specialized Experience. Experience with power and performance optimizations specific to machine learning workloads. Expertise in optimizing computational performance and energy efficiency for custom hardware accelerators.
  3. Domain-Specific Compilers. Familiarity with domain-specific compilers used in the context of machine learning, particularly those designed for specialized hardware accelerators, such as TPUs or GPUs.
  4. Hardware Parallelism Knowledge. A solid understanding of hardware architectures and systems that enable parallelism, such as multi-core CPUs, GPUs, or TPUs. This knowledge will be critical in ensuring that the software efficiently maps to hardware.

Why Google?

At Google, we are driven by our mission to organize the world’s information and make it universally accessible and useful. Our team, which blends AI, software, and hardware expertise, is dedicated to creating transformative technologies that will shape the future of computing.

By joining Google’s software engineering team, you will work on projects that have a direct and lasting impact on Google’s innovative products, used by millions of people worldwide. You will have the opportunity to collaborate with world-class engineers and researchers in a diverse and inclusive environment that fosters creativity and innovation.

As part of Google’s culture, we offer competitive compensation, comprehensive benefits, and a commitment to work-life balance. We value diversity, encourage creative thinking, and believe in the power of technology to improve lives.

Related Jobs