Software engineering and programming language researchers at Google study all aspects of the software development process, from the engineers who make software to the languages and tools that they use.
We are a collection of teams from across the company who study the problems faced by engineers and invent new technologies to solve those problems. Our teams take a variety of approaches to solve these problems, including empirical methods, interviews, surveys, innovative tools, formal models, predictive machine learning modeling, data science, experiments, and mixed-methods research techniques. As our engineers work within the largest code repository in the world, the solutions need to work at scale, across a team of global engineers and over 2 billion lines of code.
We aim to make an impact internally on Google engineers and externally on the larger ecosystem of software engineers around the world.
Google provides its engineers’ with cutting edge developer tools that operate on codebase with billions of lines of code. The tools are designed to provide engineers with a consistent view of the codebase so they can navigate and edit any project. We research and create new, unique developer tools that allow us to get the benefits of such a large codebase, while still retaining a fast development velocity.
We aim to understand diversity and inclusion challenges facing software developers and evaluate interventions that move the needle on creating an inclusive and equitable culture for all.
We use both qualitative and quantitative methods to study how to make engineers more productive. Google uses the results of these studies to improve both our internal developer tools and processes and our external offerings for developers on GCP and Android.
We build static and dynamic analysis tools that find and prevent serious bugs from manifesting in both Google’s and third-party code. We also leverage this large-scale analysis infrastructure to refactor Google’s code at scale.
We apply deep learning to Google’s large, well-curated codebase to automatically write code and repair bugs.
We design, evaluate, and implement new features for popular programming languages like Java, C++, and Go through their standards’ processes.
We design, implement and evaluate tools and frameworks to automate the testing process and integrate tests with the Google-wide continuous integration infrastructure.
Andrew Macvean
Caitlin Sadowski
Charles Sutton
Ciera Jaspan
Domagoj Babic
Emerson Murphy-Hill
Franjo Ivancic
John Penix
Kathryn S. McKinley
Marko Ivanković
Martín Abadi
Hans-Juergen Boehm
Hyrum Wright
Lisa Nguyen Quang Do
John Field
Danny Tarlow
Petros Maniatis
Albert Cohen
Kaiyuan Wang
Dustin C Smith
Harini Sampath
Phitchaya Mangpo