Projects and papers
My current research interests cover most of the programming pipeline, from designing more expressive languages, through improving the compilers, to certifiably proving code correct. The overarching goal is to make it easier to write programs correctly the first time, and to improve confidence in the resulting products.
- Pure-Causal Atomicity: The goal of atomicity analyses is to verify that certain sections of code appear to execute atomically to all other threads. This project extends recent work on causal atomicity (a model-checking approach to verify atomicity using Petri nets) with abstract atomicity (a type-theoretic approach using purity to validate mode code patterns as atomic).
- SEMINAL: I’m working with Dan Grossman to improve the quality of error messages given by compilers. In practice, these messages are often precise but cryptic, and generating them often complicates the compilers themselves (potentially introducing bugs). This project aims to separate the two aspects of error finding and reporting, and in the process make the compilers both simpler and more informative.
Previous work
I earned my undergraduate degree at Yale University, where I worked with with Paul Hudak and Zhong Shao, in particular on domain-specific languages and their properties.
- Yampa: As my senior project at Yale, I worked on proving algebraic properties of the embedding of Yampa in Haskell.
Classes and activities
Winter 2008:
- CSE 590p:
- Programming Systems Seminar
- CSE 590s:
- Systems Seminar
- CSE 341:
- TA for Programming Languages
- CSE 591a:
- WASP Working Group
Fall 2007:
- CSE 544:
- Computer Security and Privacy
- CSE 590p:
- Programming Systems Seminar
- CSE 590o:
- Parallel Programming Environments Seminar
- CSE 590s:
- Systems Seminar
- CSE 591a:
- WASP Working Group
Summer 2007:
- CSE 326:
- Instructor for Data Structures
Spring 2007:
- CSE 551:
- Operating Systems
- CSE 590p:
- Programming Systems Seminar
- CSE 590s:
- Systems Seminar
- CSE 451:
- TA for Operating Systems
- CSE 591a:
- WASP Working Group
Winter 2007:
- CSE 506:
- Advanced Topics in Programming Languages
- CSE 557:
- Computer Graphics
- CSE 590p:
- Programming Systems Seminar
- CSE 401:
- TA for Introduction to Compiler Construction
- CSE 591a:
- WASP Working Group
Fall 2006:
- CSE 544:
- Principles of Database Systems
- CSE 590p:
- Programming Systems Seminar
- CSE 590s:
- Systems Seminar
- CSE 591a:
- WASP Working Group
Spring 2006:
- CSE 503:
- Software Engineering
- CSE 599f:
- Software Model Checking
- CSE 590p:
- Programming Systems Seminar
- CSE 590s:
- Systems Seminar
- CSEP 505:
- TA for Programming Languages
- CSE 591a:
- WASP Working Group
Winter 2006:
- CSE 521:
- Design and Analysis of Algorithms
- CSE 501:
- Implementation of Programming languages
- CSE 590p:
- Programming Systems Seminar
- CSE 590s:
- Systems Seminar
- CSE 591a:
- WASP Working Group
- CSE 519:
- Current Research in Computer Science
- CSE 520:
- Computer Science Colloquium
Fall 2005:
Contact
- Email (essential):
- (first initial + last name) {at} cs.washington.edu
- Location (likely):
- Paul G. Allen Center, Office 378
- Post (possible):
- UW CSE Box 352350, Seattle, WA 98195-2350


