Professor at the Paul G. Allen School of Computer Science & Engineering, University of Washington.
Led the development of algorithmic program synthesis using sketches and constraint solving.
Pioneered solver-aided languages that offload programming tasks to constraint solvers.
Led research on Rosette, a host language for solver-aided domain-specific languages (SDSLs), developed by Emina Torlak.
Developed synthesizers Prospector and CodeHint for API-level code composition.
Working on scaling synthesis to system software via abstract and modular algorithms, and exploring synthesis-aided compilers.
Collaborated with Mozilla to generate a parallel layout engine for web browsers and data visualization using abstract synthesis.
Created Chlorophyll, a synthesis-aided compiler for spatial architectures targeting the GreenArrays GA144 processor.
Recently began work on synthesis-aided compilation of probabilistic programs in collaboration with CRA and NIMBLE.
Developing tools for computer-aided programming and data manipulation for scientists and end users.
Applying program synthesis to executable biology to infer mechanistic models from experimental data.
Designing a stack for Programming by Demonstration (PBD) web applications, including a deterministic replayer, scraper, and relational query synthesizer.
Advancing Programming By Manipulation (PBM) to simplify layout programming for data visualizations.