| Overview | Research | Teaching | Personal |
At MIT I've taught 6.033, which is a moderately technical class that teaches students how to build (and how not to build) computer systems, and 6.824, which is a great class for more advanced students who want to learn about distributed systems. My favorite class, however, has always been Berkeley's CS 61A, which teaches new computer science students that building good software starts with choosing the right abstraction. I'm indebted to Brian Harvey for teaching me how to teach.
| Spring 2009 | TA for 6.824: Distributed Systems (grad level) |
| Spring 2008 | TA for 6.033: Computer Systems Engineering |
| Spring 2007 | TA for 6.033: Computer Systems Engineering |
| Summer 2004 | Lecturer for CS 61A: Structure and Interpretation of Computer Programs |
| Spring 2002 | Head TA for CS 61A: Structure and Interpretation of Computer Programs |
| Fall 2001 | TA for CS 61A: Structure and Interpretation of Computer Programs |
| Summer 2001 | TA for CS 61A: Structure and Interpretation of Computer Programs |