Experience and education

2017– Assistant Professor, UT Austin

Since 2017, I have been based at the University of Texas at Austin. (I was actually appointed to this position in 2015, but deferred for two years to go to Bonn (see below). Besides teaching and research (detailed below), I've supervised two senior theses and led curriculum reform for two large courses (M427J and M325K-ECE).

2017– Visiting Research Fellow, University of Bonn

When I moved to UT Austin, my position in Bonn got converted to a summer visiting position. Prior to COVID-19, I would visit Bonn every summer for conferences and research collaborations.

2015–2017 Bonn Junior Fellow, University of Bonn

I spent two years at the Institute of Applied Mathematics at the University of Bonn, where I taught Masters-level courses, ran research seminars, and supervised Masters and undergraduate theses.

2013–2015 Postdoctoral Researcher, UT Austin

My postdoctoral position at UT Austin was jointly funded by the Department of Mathematics, and by Sujay Sanghavi and Constantine Caramanis in the Department of Electrical and Computer Engineering. In addition to my own research, I taught courses in the math department and helped mentor graduate students in the Wireless Networking and Communications Group.

2008–2013 Ph.D., UC Berkeley

I got my Ph.D. from the Department of Statistics and the University of California, Berkeley, under the supervision of Elchanan Mossel. My thesis was about isoperimetric properties of the Gaussian measure; for more about that, see my research page.

2008 Software Engineering Intern, Google Sydney

Before going to grad school, I spent three months as an intern at Google Sydney, where I helped launch the Google Maps API for Flash. I developed an integration testing framework for Flash and also helped squash various release-blocking bugs. The Flash Maps API lasted for about 3 years.

2003–2007 Ph.B., ANU

I got my Bachelor's degree (confusingly called a Ph.B., for "Bachelor of Philosophy") from the Mathematical Sciences Institute at the Australian National University. My Honours thesis, written under the supervision of Shahar Mendelson, was a survey on the math behind machine learning.

Honors, grants, and awards

I am currently supported by a Fellowship from the Alfred P. Sloan Foundation and an NSF CAREER award. Here is a more comprehensive list of honors, grants, and awards that I have received.

Selected publications

See Google scholar or the arXiv for a complete list of my publications and preprints. Here is a shorter list of selected publications.

Open-source projects

scribl: simple videos using handwriting and speech

In 2020 I created scribl, a program for efficiently making video lectures. Written in rust with a Druid interface, it includes neural-network-based noise removal and video encoding using gstreamer.

nnnoiseless: neural-network-based noise removal

An optimized rust port of RNNoise, a fast and power-efficient library for removing noise from audio. I wrote a blog about the porting process, and as a result nnnoiseless was featured as This Week in Rust's crate of the week.

imbl: immutable collections in rust

Since 2021, I have maintained imbl, a rust crate with fast immutable/persistent collections. I fixed several critical correctness bugs, and improved automatic testing, continuous integration, and fuzzing.

Druid: data-first UI in rust

I've been a contributor to Druid since 2020 (when I started writing scribl). Among other things, I contributed improved painting performance and implemented cross-platform input APIs.

GNU LilyPond: beautiful sheet music

From 2016 until around 2012 I was a core developer for GNU LilyPond, a program for typesetting sheet music. Among other things, I implemented new page-breaking and line-breaking algorithms, and improved the algorithms for laying out objects outside the staff.


Here is a list of classes I have taught, some of them multiple times:

Conference and seminar presentations