You can read comments from anonymous teaching evaluations

At MIT I was a TA for 6.438: Algorithms for Inference [pdf], a graduate course on probabilistic graphical models and inference, in Fall 2009 with Prof. Gregory Wornell and Prof. William Freeman.

At UC Berkeley I was a TA for CS61C in Spring 2008 and Spring 2007, an introductory course in computer architecture, operating systems, and low-level programming, with Dr. Dan Garcia. I co-created a very popular C project with Casey Rodarmor in which students program a text adventure game as they play it. You can see statistics on my teaching evaluations.

I was also a TA for EE126 in Fall 2007, a course on probability and random processes, with Prof. Martin Wainwright. I made some handouts for discussion section.

In 2007 and 2008 I worked on introducing parallelism into the introductory CS curriculum with Dr. Dan Garcia, Dr. Brian Harvey, my colleague Ramesh Sridharan, and others. We built a system to easily write and run MapReduce computations in Scheme using Hadoop [pdf] for CS61A, and we added a new parallelism lab to CS61C. I also made a new lecture on threaded programming for multicore, which is now part of Google Code University.

In the summer of 2007 I proposed an overhaul of the EE105 analog circuit labs to Prof. Tsu-Jae King Liu, and worked with another amazing team to produce a brand new set of labs, tutorials, and a project that are still in use (as of Spring 2016).