My research interests focus around all aspects of programming languages, including their type systems. I am particularly interested in languages which solve problems that larger and evolving software projects face, such as modularity and changing dependencies. To this end, I primarily work with Haskell and other functional programming languages. I am also interested in applying advances in programming languages to other areas, both within and outside of Computer Science.
Between October 2013 and July 2017, I was a PhD student at the Computer Laboratory of the University of Cambridge where I was working on Programming language structures and program evolution under the supervision of Alan Mycroft. There, 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.
During my time at Nottingham, I wrote a book about automata theory, which eventually became a recommended text for the corresponding module there. It is freely available here.
In my spare time, I enjoy cooking, punting, and video games.