I am an assistant professor of computer science at Harvard SEAS. Previously, I was a University Lecturer in Programming Languages at the University of Cambridge; a member of the team behind the Scala programming language at the Ecole Polytechnique Federale de Lausanne (EPFL), where I pursued my PhD; and a software engineer at Google, on the compiler infrastructure supporting Gmail and other Google Apps. I hold bachelor of science and master of engineering degrees from the Massachusetts Institute of Technology (MIT).
Research
I lead the metareflection lab, where we explore new ways of programming that are easier, faster, safer.
For safer, we look at systems and formalisms based on types and verification.
For faster, we look at meta-programming techniques including generative programming and reflection to collapse levels of interpretations as well as move between different views of the same program in a way that helps optimizations, understanding and modifications.
For easier, our goal is to enable a greater number of people to manipulate computer programs (static) and processes (dynamic) in a robust way. To this end, we look at combining Machine Learning and Programming Languages to enable the creation of neuro-symbolic systems that can move back and forth between learnable (neural) and interpretable (symbolic) representations of a system.
We are always looking for new application domains in which to evaluate programming techniques, particularly around medicine or creativity.
Research Interests
- meta-theory of modular, extensible systems for programming and proving
- meta-programming around multi-stage programming and reflection
- meta-reasoning in relational & probabilistic programming
- neurosymbolic AI/PL like relaxing machines from symbolic to differentiable
- verified program and proof synthesis mixing symbolic reasoning and LLMs
- precision medicine to explore collaborative problem-solving agents
Publications
Research Projects
Teaching
Fall | 2024 | CS2520R | PL Theory Implementation |
Spring | 2024 | CS152 | Programming Languages |
Fall | 2023 | CS252R | Program Synthesis |
Fall | 2022 | CS252R | Advanced Semantics of PL |
Spring | 2022 | CS152 | Programming Languages |
Fall | 2021 | CS252R | PL Design Graduate Seminar (PL Studio) |
Spring | 2021 | CS152 | Programming Languages |
Fall | 2020 | CS252R | PL/AI Graduate Seminar |
Spring | 2020 | CS152 | Programming Languages |
Fall | 2019 | CS252R | PL/HCI Graduate Seminar |