I’m a PhD candidate in the UCSD Programming Systems Group advised by Sorin Lerner. My work has included efforts to improve the Java type system with respect to wildcards, analyses for automated verification of GPGPU programs, and most recently, interactive systems for developing parsers for context-free languages. Although my research interests are quite broad, one common theme ties them together: creating tools that make it easier to build complex systems reliably.
I graduated from Cornell University in Spring 2004 with a degree in Electrical and Computer Engineering with a concentration in computer architecture. Immediately afterwards, I joined Intel, where I worked with a fantastic group of engineers designing cache systems on several generations of Itanium microprocessors. During this time I developed a curiosity for software design, and in particular, the design of VLSI development tools. My interest in programming languages began when I saw how fundamentally the choice of language influenced the structure of such tools. That initial spark has only grown over time, to the point that I decided to return to school to pursue a PhD in 2010.