I am interested in all areas of theoretical computer science, particularly cryptography, computational complexity, quantum computation, and the theory of machine learning.

Electronic versions of my papers are below. I am sometimes a little slow in updating this, in which case my Google Scholar page might be more up to date.

See also non-technical writing - surveys, presentations, including essays for a non-expert audience. I have also written a textbook on computational complexity with Sanjeev Arora, and am currently writing an undergraduate textbook: Introduction to Theoretical Computer Science. I also wrote extensive lecture notes on the sum of squares algorithm with David Steurer, and on Cryptography.