My interests span programming languages, formal methods, and software engineering. In particular, I am interested in how to construct large-scale distributed software systems with both formal and empirical evidence of correctness, and development of complementary proof engineering and testing techniques that make such construction possible.

I am an avid user of the Coq proof assistant for both proving and programming, usually complemented by a measure of OCaml.

Read my summary of our regression proving research from a Coq perspective, which includes suggestions for better support in proof assistants.