Since July 2009 I work for Two Sigma, a medium-sized financial company in New York City.  I'm having a lot of fun there designing reliable software.

I have a Ph.D. in Software Engineering from Carnegie Mellon University's School of Computer Science.  I graduated in May 2009 with my thesis on API protocol compliance in object-oriented software. My advisor is Jonathan Aldrich.  I hold a M.S. degree from Carnegie Mellon and a B.S. degree from Hasso-Plattner-Institute, Potsdam, Germany.

Read about Software Architecture

Posted October 2010

My friend George Fairbanks wrote a great book on how to do Just Enough Software Architecture that's really worth the read. The book presents a canonical set of models that software architects should keep in mind and introduces technical risk as the deciding factor for which models to pay close attention to.

research projects

Posted October 2010

Most of my research is related to static analysis and type theory, primarily based on typestates.

thesis defense 23 April 2009

Updated October 2010

I successfully defended my thesis on 23 April 2009, 12 noon, in Wean Hall 5324! It was a great honor and pleasure that so many of my friends and colleagues were present. We even video-conferenced a number of people in from California and Portugal. Thanks to all of you who attended—it was a day I will never forget.

case studies for ecoop 2009 paper

Updated October 2010

For my paper on case studies with Plural at ECOOP 2009 in Genova I annotated a number of Java standard library APIs with Plural-readable annotations. In the interest scientific transparancy, I am making the annotated Java API files available here.

For license-technical reasons, I'm currently not sure how to distribute the annotated client programs I checked against these APIs. If you're interested in seeing that code please contact me.

crystal tutorial at ecoop 2009

Posted April 2009

ECOOP 2009 will feature a tutorial on Crystal that Ciera Jaspan, Jonathan Aldrich, and I are organizing: Crystal-izing Sophisticated Code Analyses. Crystal is an Eclipse-based open-source static analysis framework for Java that I co-developed over the past few years.


Posted June 2008

Plural is a static protocol analysis tool for Java that I am developing with Nels Beckman.  You can download the sources for Plural and find instructions on how to install it under Eclipse on Google Code.