I am a computer scientist whose work has spanned software engineering, programming languages, program analysis, automated testing and debugging, machine learning, and AI for software development. Over my career at Meta, Google, Facebook, Samsung Research America, IBM Research, and Bell Labs, a recurring theme has been taking research ideas into production and using production experience to generate new research questions.
I was elected an ACM Fellow in 2025 for contributions to the foundations and practice of software development tools.
A recurring theme in my work is the two-way connection between research and practice: taking research ideas into production, and using production experience to generate new research questions, evaluations, and evidence.
Meta — Research Scientist, 2025–present
AI for software engineering; coding agents; developer productivity
Google — Software Engineer, 2022–2025
AI-powered developer tools for code completion, review, bug fixing, migration, and question answering
Facebook / Meta — Software Engineer, 2016–2022
Founded and led the Big Code team; machine learning for developer tools
Samsung Research America — Senior Principal Engineer / Senior Director, 2013–2016
Programming tools, JavaScript compilation, and research leadership
IBM Research — Research Staff Member / Manager / Senior Technical Staff Member, 2002–2013
Program analysis, testing, debugging, software engineering, and technology transfer
Bell Labs Research — Member of Technical Staff, 1997–2002
Static analysis, software maintenance, and network monitoring
I have taught courses in compilers and software engineering at Stanford University, topics in verification at the Indian Institute of Science, and Structure and Interpretation of Computer Programs at the University of Chicago.