Selected work
Projects
Strongest first. This list will grow as more work is written up.
- 01
GPU and parallel performance engineering
COMPX553, 99.05%
A nine-assignment progression from sequential Java tuning through OpenCL and CUDA to Hadoop and Spark, built on one rule - measure, optimise, and attribute every gain to a specific cause.
CUDA C++, OpenCL, Java (ForkJoinPool, CompletableFuture), Hadoop MapReduce, Spark
- 02
EEG flow-state detection - funded summer research
2025-26
A 10-week funded research project on decoding flow state from wearable EEG, now continuing into an honours dissertation.
Python, MNE/DSP, EEG-BIDS, scikit-learn, Optuna, MLflow, LSL/XDF
- 03
Deep learning under real-world constraints
COMPX525, 99.14%
Two PyTorch projects on messy, real-world image and audio data rather than clean benchmarks - one strong result, one well-evidenced negative result.
PyTorch, transfer learning (DINOv3, BirdNET), LoRA, Optuna, GPU-side augmentation
- 04
RBFN benchmark and Bayesian inference
DATAX397, 94.63%
A custom Radial Basis Function Network benchmarked rigorously against tuned baselines, alongside a from-scratch Bayesian inference study.
Python, NumPy, custom scikit-learn-style estimators, Optuna, Bayesian inference
- 05
Streaming ML
COMPX523, 92.74%
A memory-budgeted streaming ensemble with drift detection, plus fixes to a streaming KNN implementation's memory growth and interop overhead.
CapyMOA/MOA, NumPy, concept-drift handling, online ensembles
- 06
Spectral graph theory report
COMPX546, 99.28%
A self-chosen technical report building spectral graph theory from the adjacency matrix to the Fiedler vector, with two original proofs and code-generated figures.
- 07
whisper-transcriber - local ASR and agent tooling
A general-purpose long-form-audio transcription pipeline, plus an honest capability finding from a shelved local-LLM cleanup experiment.