I am a Software Engineer at GitHub, working on CodeQL. Previously I worked at Tweag, where I consulted for Hachi Security and Juspay. I like open-source, teaching, and all things to do with programming languages!
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.
I was previously a Senior Teaching Fellow in the Department of Computer Science at the University of Warwick from July 2017 until October 2021. During this time I taught courses on Functional Programming, Cyber Security, Programming for Computer Scientists, and Programming Paradigms. 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.
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.