I design better hardware–software abstractions through research in programming languages and computer architecture. Much of my work is on approximate computing: the idea that computers can be more efficient if they are allowed to be imperfect. To help programmers trade off accuracy for efficiency, we need new languages, tools, processors, accelerators, memories, and compilers.

I am a new assistant professor in the Department of Computer Science at Cornell University. I graduated from the University of Washington in 2015. Here’s my CV.

latest blogging: June 15, 2016 — more bloggingssubscribe

Probably Correct

Say you have a program that’s right only some of the time. How can you tell whether it’s correct enough? Using with some Wikipedia-level statistics, it’s pretty easy to make probabilistic statements about quality. I’ll explain two strategies for measuring statistical correctness. Then I’ll argue that it’s deceptively difficult produce guarantees that are any stronger than the ones you get from the basic techniques.