I’ve started a post-doc at Brown University, working with Shriram Krishnamurthi. I finished my Ph.D. this summer at the University of Washington, studying programming languages and techniques with Dan Grossman, and learning about systems with Steve Gribble. 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.
Overall my 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. Currently, I am focusing on developing principled approaches to web-application extensibility, which requires a novel mix of the challenges of language design, software engineering, and systems architecture.
Research interests and papers
- Web browser extension compatibility: Firefox’s rise in popularity can be largely attributed to its much-touted extensions, which offer versatility, convenience and relatively-low learning curves to amateur and expert coders alike. But with such customizability comes problems: many extensions fail to work properly when installed simultaneously. This project aims to provide a better programming model for extensions that can detect and perhaps correct these conflicts before they happen.
- Non-uniform parallelism on a GPGPU: As an internship at AT&T Research, I worked with Trevor Jim and Yitzhak Mandelbaum on accelerating parsers using a general purpose GPU and the CUDA framework.
- 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 worked 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.
- Yampa: As my senior project at Yale, I worked on proving algebraic properties of the embedding of Yampa in Haskell.
More information can be found on the following page.
Contact
- Email (essential):
- (first initial + last name) {at} cs.brown.edu
- Location (likely):
- Department of Computer Science, Office 309
- Post (possible):
- Brown University / Department of Computer Science / 115 Waterman Street, 4th floor / Providence, RI 02912-1910


