I am a final-year PhD student at MIT advised by Armando Solar-Lezama. I received my bachelor's degree from Harvard in 2008.

I will be joining the Carnegie Mellon University as an Assistant Professor in fall 2016. (My new website is here.) I am spending the 2015-2016 academic year in the Fontana Lab at Harvard Medical School thinking about how we can use programs to model biological knowledge.

My research interests are in programming language design, software verification, and privacy and security. I am interested in 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 PhD 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.

To increase the impact of security research, I started The Cybersecurity Factory, a summer program for security startups, with fellow MIT PhD student Frank Wang. We are running a pilot program in Cambridge, MA this summer.

News and Updates.

Projects.

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.

Teaching.

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.

Testimonials.

It is now fashionable to have such a section on one's website.


Non-academic testimonials here.

Relevant Activities and Links.

Activities.

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.

Blogs.

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 PhD 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: