I do programming languages and computer architecture. I like research that breaks down abstraction barriers and rethinks the hardware–software interface. I worked on approximate computing, the idea that computers can be more efficient if we let them make mistakes. See what’s going on in my research group, which is called Capra.

I am an associate professor in the Department of Computer Science at Cornell University, where I am part of the Computer Systems Laboratory and the programming languages group. I graduated from the University of Washington in 2015. Here’s my CV.

I am on sabbatical in Seattle for the 2022–23 academic year. Feel free to contact me, but I reserve the right to even longer email latencies than usual.

latest blogging: July 22, 2022 — more bloggingssubscribe

Try Snapshot Testing for Compilers and Compiler-Like Things

Snapshot testing is a preposterously simple method for testing tools that transform text to other text, like compilers. This post is an example-based overview of snapshot testing using a tool we developed in our lab called Turnt. I also extoll the subversive philosphy that the technique embodies, which prioritizes the velocity of adding new regression tests over traditional goals like precision and specificity.