I am a 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 and software verification, especially as they apply to security and privacy.

For my Ph.D. thesis I have created a programming language, Jeeves, for automatically enforcing information flow policies for privacy and security. I have developed a formal semantics for Jeeves, proven guarantees about it, and implemented Jeeves as embeddings in Scala and Python. I am building a Jeeves web framework that extends the programming model across the application/database interface.

Earlier in my graduate career, I built the Verve operating system with Chris Hawblitzel. Verve is verified end-to-end for type safety and memory safety.

Peer-Reviewed Publications.

Research Talks.

In addition to conference and workshop 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).

In June 2013 I spoke at Gigaom's Structure Conference as one of the "10 for 2013" Cloud Trailblazers. [article | video]

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.

Profiles and Interviews.

Non-Academic Articles.

Other Public Speaking.

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