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 an assistant professor in the Department of Computer Science at Cornell University, where I am also part of the Computer Systems Laboratory. I graduated from the University of Washington in 2015. Here’s my CV.

latest blogging: November 23, 2016 — more bloggingssubscribe

Statistical Mistakes and How to Avoid Them

You can get CS papers published with shoddy statistics, but that doesn’t mean you should. Here are three easy ways to bungle the data analysis in your evaluation section: don’t even try to use statistics when you really ought to; misinterpret an inconclusive statistical test as concluding a negative; or run too many tests without considering that some of them might be lying to you. I’ve seen all three of these mistakes in multiple published papers—don’t let this be you!