I am a Senior Teaching Fellow in the Department of Computer Science at the University of Warwick. I am also an Associate Fellow of the Higher Education Academy.

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.

You can find me on GitHub and Twitter. I also still help moderate the /r/UoN subreddit, which I founded in 2011.