I am a Principal Researcher at GitHub Next (opens in new tab) specializing in AI-driven collaborative programming systems. I am one of the originators of GitHub Copilot X (opens in new tab), a set of GPT-4 driven programming technologies that enhance and extend the capabilities of GitHub for the era of AI-integrated software engineering. I combine a practical approach and deep experience in delivering cutting-edge technologies through real-world channels. I work with researchers, GitHub and open source communities to make better technologies, and, through that, make people more productive and happier.
I have been responsible for the design and implementation of the F# language (opens in new tab), and now contribute through the F# Language Design Process (opens in new tab). I’ve also worked on the design of virtual machines and the C# language, being co-responsible for the design and implementation of C# and .NET generics (opens in new tab). I am one of the originators of language integrated asynchronous programming (opens in new tab) – now adopted in F#, C#, Python, TypeScript and many other languages. With others I developed the concept of type providers for scalable data integration into strongly-typed functional programming (opens in new tab). I’ve contributed to functional user interface design and implementation through the Fabulous (opens in new tab) implementation of the MVU programming model (opens in new tab) and to the machine learning technologies TorchSharp (opens in new tab) and DiffSharp (opens in new tab), which together provide world-leading automatic differentiation capabilities for tensor code, allowing the use of nested forward and reverse differentiation up to any level. I’m an experienced and accomplished speaker on topics including new perspectives on the static v. dynamic divide in programming (opens in new tab) (talk (opens in new tab)) and the history of programming languages (opens in new tab).
I am interested in type inference, machine learning, large language models, user evaluations, language tooling, programming language design, end-user programming, functional-first programming, asynchrony, concurrency, reactivity and language-oriented programming. I am the primary author of Expert F# (opens in new tab). 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 have been a contributor to the WG2.8 and WG2.16 working groups on programming.