I am a computer scientist at the University of California, Berkeley. My research focuses on improving software design and development through automation. I have developed a variety of automated techniques for analyzing and synthesizing software artifacts, including specifications, programs, executions, test data, and memory models. I am currently working on Rosette, a new solver-aided language, which enables easy creation of domain-specific tools for (bounded) verification, synthesis, angelic execution, and fault localization.

[ CV | research statement | teaching statement ]