About

I am a Software Engineer at GitHub, where I work on CodeQL. After initially improving CodeQL support for static programming languages (Go, C#, and Java), I now mainly work on CodeQL in production, cross-team initiatives, and internal developer experience. Some of my work on CodeQL is open-source and can be found in the github/codeql and github/codeql-action repositories.

My interests focus around all aspects of programming languages, including their specification, implementation, and tooling. I am particularly interested in languages with expressive type systems and those which solve problems that larger and evolving software projects face, such as modularity and changing dependencies. To this end, the language I enjoy working with the most is Haskell, but I have experience with a vast selection of languages across different paradigms. I am also interested in applying advances in programming languages to other fields, both within and outside of Computer Science.

Career

Prior to joining GitHub, my career started as an academic at the University of Warwick, where I was a Senior Teaching Fellow (equivalent to and nowadays titled Assistant Professor, teaching only) from 2017 until 2021. There, I led courses on Functional Programming, Cyber Security, and others. In 2021, I was awarded two departmental teaching awards by my students for my Functional Programming and Cyber Security courses. In the same year, I was also a finalist for the Warwick Award for Teaching Excellence. I also held various departmental responsibilities, such as the roles of the the Director of Undergraduate Admissions and the Director of Postgraduate Admissions.

After leaving the University of Warwick in 2021, my expertise in programming languages and software engineering led me to work at Tweag. There, I primarily worked as a Haskell and software engineering consultant for some of Tweag's clients to kickstart their new projects or improve their engineering practices. In 2022, I left Tweag to join GitHub to work on CodeQL.

In 2024, concurrently with my work at GitHub, I was a Visiting Assistant Professor at the University of Birmingham and led an undergraduate course on Software Engineering there.

Between 2021 and 2025, I supervised the PhD of Finnbar Keating. I also continue to be involved with peer reviews for academic conferences from time-to-time.

Education

Between October 2013 and July 2017, I was a PhD student at the Computer Laboratory (now: Department of Computer Science and Technology) of the University of Cambridge where I was working under the supervision of Alan Mycroft on encodings of objects systems in Haskell. I was a member of the Programming, Logic, and Semantics Group, the Cambridge Programming Research Group, and Darwin College.

Before my time at Cambridge, I completed my BSc (Hons) in Computer Science at the University of Nottingham between September 2010 and October 2013. My undergraduate dissertation deals with the design and implementation of a Haskell-like language with syntactic sugar for state monads. It was supervised by Graham Hutton. The code for the resulting compiler is available on GitHub.

Personal

I enjoy contributing to and maintaining open-source projects, teaching, cycling, hiking, DIY, cooking, and all things to do with programming languages.