Journey

A short timeline — from applied mathematics research to performance-focused AI frameworks engineering.

  1. 2026 — Now · Open Source

    Creator · cmakefmt

    Built a fast, correct CMake formatter in Rust as a replacement for the unmaintained cmake-format. Includes an LSP, format-on-save in five editors, and a single dependency-free binary; on average 100× faster than cmake-format.

  2. 2025 — Now · Work

    Senior Software Engineer, AI Frameworks · Arm

    Upstream Lead for Arm's Tool Solutions, integrating contributions across PyTorch, oneDNN, Arm Compute Library, and OpenBLAS into shippable Arm-optimised builds.

    • Re-established public AArch64 Docker releases for PyTorch builds in Tool Solutions, meeting Arm distribution policy on SBOMs, vulnerability handling, threat modelling, and release governance.
    • Upstreamed LLaMA inference improvements on Neoverse — routing matmul plus JIT post-op through Arm Compute Library's optimised path instead of the slower reference path.
    • Built Python tooling to automate SBOM maintenance across package adds, removes, and updates, cutting manual work and release risk on every framework drop.
    • Integrated ccache into Tool Solutions with the required upstream PyTorch changes, shortening CI Docker builds and local rebuild iteration.
    • Led the organisation of AI Days for a 500-engineer department and presented recent open-source work at Arm's AI Summit in Cambridge.
  3. 2021 — 25 · Work

    Senior Imaging Algorithms Engineer · Arm

    Built imaging algorithms and engineering tooling for Arm's ISP pipeline.

    • Reimplemented C++ ISP blocks with trainable PyTorch tensor ops as part of a differentiable-ISP project.
    • Developed RGB reconstruction algorithms for automotive RGB-IR sensors, where infrared-sensitive sites replace some green photosites and otherwise break downstream blocks.
    • C++/LibTorch performance work for accelerating image quality metrics processing.
    • Hands-on time in the Image Quality labs working with calibration charts, IQ metrics, and tuning workflows; ran auto-focus testing and evaluation on prototype devices.
    • Built a PyBind11 wrapper for GoPro's GPR C++ library, enabling direct RAW image loading and manipulation from Python.
    • Automated Android image capture via a Python wrapper around adb for repeatable data-collection runs.
  4. 2019 — Now · Open Source

    Part-time maintainer · oomph-lib

    Rewrote the project's Autotools build system with CMake and continue supporting finite-element tooling for PDE research.

  5. 2016 — 20 · Education

    PhD in Applied Mathematics · University of Manchester

    Thesis: The Direct Computation of Time-Periodic Solutions of PDEs With Applications to Fluid Dynamics. Supervised by Prof. Matthias Heil and Prof. Andrew Hazel.

    • Implemented a space–time formulation that solves for periodic orbits directly as a boundary-value problem — sidestepping the long transients of time-stepping and reaching unstable branches it can't.
    • Built the method inside oomph-lib, the open-source C++ finite-element library whose Autotools build system was later rewritten in CMake.
    • Two papers in Journal of Fluid Mechanics, plus an invited Focus on Fluids commentary on the 2021 paper.
    • Taught mathematics tutorial classes, presented at international conferences, and authored annual technical reports in LaTeX.
  6. 2012 — 16 · Education

    MMath Mathematics · University of Manchester

    Four-year integrated master's in Mathematics. Graduated with First-Class Honours.