I am a Principal Researcher at Microsoft Research, Cambridge. I work with researchers, Microsoft and open source communities to make better programming technologies, and, through that, make people more productive and happier.
My main responsibility is the design and implementation of the F# programming language. I've also worked on the design of virtual machines, the C# language (being co-responsible for C# and .NET generics, and one of many contributors to C# asynchronous programming) and, indirectly, Visual Basic and other .NET languages.
As a researcher, my area is programming language design and implementation, with emphasis on making languages that are simpler to use, interoperate well with other languages and which incorporate aspects of object-oriented, asynchronous and parallel programming. I am interested in programming language perspectives on type inference, concurrency, reactivity, extensible pattern matching and language-oriented programming. I also work extensively with teams in the Microsoft Developer Division on other programming-related technologies.
I am the primary author of Expert F#. In the past I have worked in formal specification, interactive proof, automated verification and proof description languages. I have a PhD from the University of Cambridge and am a member of the WG2.8 working group on functional programming.