I am a Principal Researcher at GitHub Next specializing in AI-driven collaborative programming systems. I am one of the originators of GitHub Copilot X, 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, and now contribute through the F# Language Design Process. 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. I am one of the originators of language integrated asynchronous programming – 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. I’ve contributed to functional user interface design and implementation through the Fabulous implementation of the MVU programming model and to the machine learning technologies TorchSharp and DiffSharp, 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 (talk) and the history of programming languages.
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#. 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.