..

About

I’m a programmer who has a primary interest in compilers, language semantics, and formal methods. I have a bachelors (BSc Hons) from St. Andrews University.

My work mostly focuses on the structure and behaviour of languages, including type systems, IR, and correctness properties. I’m particularly interested in how high level abstractions map onto low level execution models and in the design of systems that make those transformations precise and verifiable.

This includes implementing frontends from unambiguous grammars, lowering through ANF into SSA IR’s and designing backends with tight control over calling conventions and register allocation. I’ve worked on dataflow analyses over control flow graphs using lattice frameworks with fixed point iteration and applied abstract interpretation to derive conservative approximations of program behaviour. I care about invariants across passes, aliasing models, and how optimisation interacts with soundness, especially where transformations risk breaking semantic preservation.