I am interested in the theory and application of programming languages, both typed and untyped. This covers several areas of computer science, including the semantics of programming languages, the underlying mathematical structures and methods of formal verification.
Working with Steven Ramsay and Robin Neatherway, I was one of the developers of THORS, a type-based model-checker for verifying Alternation-Free Mu Calculus properties (and hence CTL properties) on value trees generated by Higher Order Recursion Schemes. This was the first model-checker for infinite state systems. The intended application of this work was verifying liveness properties of higher order functional programs.
More recently, I have been looking at intensional metaprogramming, in particular the SF-calculus: how to analyse it and how it relates to other forms of metaprogramming.
However, the majority of my time is currently spent teaching undergraduates, either in the department or in Balliol College.
My undergraduate degree was a BA in Computer Science, gained while studying at Gonville & Caius College, Cambridge (2003-2006). After a period working as a software developer for Autonomy Systems, I studied for the MSc in Mathematics and Foundations of Computer Science at St Edmund Hall College, Oxford (2008-2009). I completed my DPhil in Computer Science at Merton College, Oxford (2009-2015), under the supervision of Luke Ong.
Since 2013, I have been working for the department as a Senior Teaching Assistant. In addition, since 2014, I have been Balliol College's Lecturer in Computer Science.
I was part of the team from Luke Ong's research group that won the ICFP Programming Contest in 2011. Our winning entry was written in the functional programming language F#. In 2014, I was part of the organising committee for the contest, which challenged participants to write AIs for a Pacman clone.