I am a PhD student in Computer Science at Brown University, advised by Shriram Krishnamurthi. My research takes a programming-languages approach to improving how people express intent and reason about program behavior, drawing on ideas from formal methods, human–computer interaction, and cognitive science. I am especially interested in how models of human cognition can inform the design of languages, semantics, and interactive tools for understanding complex computational structures.
Previously, I was a software engineer at Microsoft, where I worked both on Windows1 and Azure2. My research interests are informed by my time as an engineer. I have written code that doesn’t do what I want it to, and I want to spare everyone else the indignity.
Diagramming and Spatiality
The most important aspect of a diagram is how it is spatially arranged, not its aesthetic rendering. I am interested in understanding the spatial operations that are needed to build useful diagrams.
Linear Temporal Logic
This project involves understanding and addressing misconceptions that practioners have when working in LTL.
Forge
Forge is a sibling of the Alloy language designed with pedagogy in mind. Key features include a gradual progression of (sub)languages, unit testing for logical predicates, and support for domain-specific visualizations.
Examplar
An IDE for Pyret that helps students check their understanding early by letting them write input–output examples and get instant feedback on whether these example suites are valid and thorough.
-
I worked on the XAML UI Framework from 2016-2018. ↩
-
I worked on Azure’s AI services, with a particular focus on containerizing AI from 2018-2021. ↩