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 assistant 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.

latest blogging: June 22, 2019 — more bloggingssubscribe

FPGAs Have the Wrong Abstraction

Verilog is the de facto abstraction for programming today’s FPGAs. RTL programming is fine if you want to use FPGAs for their traditional purpose as circuit emulators, but it’s not the right thing for the new view of FPGAs as general-purpose computational accelerators.