I am a PhD student at the Computer Laboratory of the University of Cambridge where I have been working on Programming with effect hierarchies under the supervision of Alan Mycroft since October 2013. I am a member of the Programming, Logic, and Semantics Group, the Cambridge Programming Research Group, and Darwin College. I am an Associate Fellow of the Higher Education Academy.

From July 2017, I will be a Senior Teaching Fellow in the Department of Computer Science at the University of Warwick.

My research interests focus around the design and implementation 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 fields, both within and outside of Computer Science.

I completed my BSc (Hons) in Computer Science at the University of Nottingham between September 2010 and October 2013. My 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 compiler is freely 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. I am currently the Admiral of the Punts at Darwin College.

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