Photo credit: Rishabh Singh.

I am a fifth-year Ph.D. student at MIT advised by Armando Solar-Lezama. I am in the Computer-Aided Programming group.

I want to automate the tedious, error-prone aspects of programming so programmers can focus on more interesting functionality. Towards this I am interested in the interaction of declarative logical constructs with non-declarative programming models. Programming in pure logic is often useful, but not necessarily for all aspects of a problem.

For my Ph.D. thesis I am creating a programming language for automatically enforcing information flow policies for privacy. I have designed a language, Jeeves, that allows the programmer to implement rules for the flow of values separately from the rest of the functionality. The Jeeves runtime is responsible for producing outputs that adhere to the policies for protecting both reads (confidentiality) and writes (integrity). I have been developing the semantics, theoretical guarantees, and implementation. I plan to demonstrate the feasibility of this approach in web frameworks.

To get an idea of where I am coming from, you may be interested in the MIT programming languages page.

If you are wondering whether you should learn Scala, you should read my blog post on why the answer is probably yes.

Research Projects.

Peer-Reviewed Publications.

Press.

Awards and Honors.

Teaching.

Programming languages research is more impactful when programmers understand how to use and evaluate their tools. Towards this goal I have designed the following courses:

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

Relevant Activities and Links.

Service.

I started the annual MIT Programming Languages Offsite Meeting in spring 2010 for the research groups in programming languages and relarted areas to exchange updates, discuss the state of the field, and discuss future directions.

I co-founded Graduate Women at MIT in fall 2009 for the promoting the personal and professional development of graduate women. One of my current projects is Positivity@MIT for creating a more positive workplace environment.

Writing.

I occasionally blog about academia and life in graduate school. I recently joined the CACM blogroll.

Advice.

I have compiled the following advice on applying to graduate school:

  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

Other.

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.

I discuss graduate school and computer science in Lan Li's short documentary film rocks, bands, logic (fall 2011).

If you are curious about how I came to study computer science, you may enjoy this nicely illustrated profile my classmate Julia Lindau made.