I joined Microsoft Research in November 2002 and spent the majority of my tenure there as a member of the Research in Software Engineering group. My work aims to improve software reliability by providing programmers with automated tools to analyze their programs. Most of my work has focused on analysis of concurrent software. Although I worked on a variety of topics in software verification in my early days at Microsoft Research, I have focused on essentially two research projects in the last ten years—safe and reliable asynchronous programming and verified construction of concurrent programs using refinement layers.
I moved to Microsoft Azure, specifically to the Blockchain engineering team, in September 2017. Blockchain is an exciting new development in large-scale distributed systems with deep connections to a variety of disciplines in core computer science—programming models and languages, software verification, and systems security. I am currently working on Azure Blockchain Workbench, a programming model and distributed runtime for blockchain applications.