I'm currently studying at the University of Cambridge for an MPhil in Advanced Computer Science.
I previously studied at the University of Warwick, and have spent some time as an academic officer at the University of Warwick Computing Society and as a CAD Design Verification intern at Apple.
I think my interests can be most effectively summarised by what I'm working on now, what I've worked on in the past, and what I want to learn about in the future. This list was last updated on the 15th of June 2025.
- An optimising compiler for BrainF using xDSL, to demonstrate the end-to-end process of building a compiler backed onto the LLVM MLIR ecosystem in Python (repo here)
- A performance optimisation for CPython's specialising adaptive interpreter
- Writing some more blog posts for my website
- (June 2025) My Masters's degree thesis, titled "Performance and Dynamism in User-extensible Compiler Infrastructures" and supervised by Dr Tobias Grosser and Sasha Lopoukhine
- (June 2025) ByteSight, a tracing profiler for Python bytecode (repo here)
- (March 2025) An exploration of the explainable artificial intelligence paper Beyond Sparsity: Tree Regularization of Deep Models for Interpretability titled "Just Prune It? Evaluating Tree Regularisation and its Applicability to Explaining Concept Bottleneck Model Side-channels" (repo here, write-up here)
- (January 2025) An investigation into the opportunities for shared memory parallelism in the egg e-graph library for equality saturation compiler optimisations (fork here, write-up here)
- (January 2025) A replication study of the paper Where Has My Time Gone? (repo here)
- (October 2024) A performance evaluation of the Jack's Gelato online menu, motivating an automatically generated web mirror with more desirable performance properties (blog post here, repo here)
- (April 2024) My Bachelor's degree thesis, an assessment of Rust's suitability for performant and productive implementations of HPC codebases (dissertation here, talk here, meta-repo here)
- (April 2024) Software tooling to facilitate running performance experiments on HPC resources through the Slurm workload manager (documentation here, repo here)
- (December 2023) An LLVM-backed compiler written in C++ for a subset of the C language (repo here, tests here)
- (November 2023) A discussion of the monoidal properties of Lasagne (video here, repo here)
- (November 2021) A stochastic model of the spread of antibiotic resistant pathogens which was nominated for best model as part of the international gold medal winning Warwick team for the iGEM synthetic biology competition (website here, repo here)
- Hardware description languages, perhaps writing some Verilog for a small FPGA
- Proof assistants, likely through the Lean Natural Numbers Game
- How we can build MLIR (or xDSL 😉) dialects to represent dynamic languages
- Caveat: when I have any free time...