I am a final-year Ph.D. student at MIT advised by Armando Solar-Lezama. I received my bachelor's degree from Harvard in 2008. My research interests are in programming language design, software verification, and privacy and security.

I am on the academic job market this year.
[Curriculum vitae] [Research statement] [Teaching statement]
[Diversity statement]

My research is about designing language constructs and execution strategies that allow the runtime to take responsibility for tedious, error-prone tasks that cut across the program. For my Ph.D. thesis I have created a programming language, Jeeves, for automatically enforcing information flow policies for privacy and security. I am building a web framework that extends the programming model in database-backed applications.


Peer-Reviewed Publications.

Research Talks.

I have spoken about the Jeeves programming language at the following universities and companies: Harvard University (Dec. 2011), Northeastern University (Dec. 2011), New York University (April 2011), Google New York (July 2011), Facebook Menlo Park (March 2012), Google Mountain View (April 2012), UC Berkeley (April 2012), Boston University (April 2012), Brown University (June 2012), Tufts University (Colloquium, Dec. 2012), and Microsoft Research Cambridge (Oct. 2013).

Awards and Honors.

Selected Press.


I spend a fair bit of time thinking about how to help people understand how to use and evaluate their tools. In addition to serving as a Teaching Assistant for introductory programming, theory, and program analysis courses, I have designed and taught the following short courses:

You may see my CV for a complete listing of my teaching experience.

Non-Academic Articles.

Public Speaking.

Profiles and Interviews.

Relevant Activities and Links.


In spring 2010, I started the annual MIT Programming Languages Offsite Meeting for exchanging ideas among MIT research groups in programming languages, software engineering, and human-computer interaction.

In fall 2009, I co-founded Graduate Women at MIT for the promoting the personal and professional development of graduate women. I also created the Positivity@MIT project for creating a more positive workplace environment.

As of fall 2013, I have been co-directing NeuWrite Boston, a collaborative working group for scientists and writers, with Amanda Gefter. Our goal is to improve and innovate the state of science communication.


I occasionally blog about academia, graduate school life, programming, culture, and other topics that interest me. I recently joined the CACM blogroll.

I also have a couple of satirical photo blogs. My brogramming project examines the "brogrammer" trope in tech culture and also society's image of the programmer. My Strong Reject meme satirizes the human aspects of the scientific reviewing process. There is also Haskell Ryan Gosling, an exercise in discovering how much Haskell can be taught through Ryan Gosling.

Considering Graduate School?

I have compiled the following advice on applying for a Ph.D. in computer science:

  1. Deciding to Apply
  2. Standardized Tests
  3. Fellowships
  4. Applications
  5. School Visits
  6. Some notes on picking grad schools/advisors
  7. FAQ: Applying to Graduate School for Computer Science

You may also be interested in these blog posts I have written: