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 23rd May 2025.
- My Master's degree research project, investigating how we can improve the performance of the xDSL compiler toolkit (meta-repo here)
- ByteSight, a tracing profiler for Python bytecode (repo here)
- Writing some more blog posts for my website
- (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, writeup 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)
- (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 project, 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)
- (November 2023) A discussion of the monoidal properties of Lasagne (video 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...