I've just finished my Master of IT. I'm pretty keen on anything machine learning, computer vision, data engineering or backend performance tuning. I'm currently preparing my badminton computer vision work for publication.
Computer Vision Sports Analytics (Badminton Auto-annotator and Dataset Builder)
- Extends the state-of-the-art BST CV + time-series architecture; new top benchmarks on the published ShuttleSet evaluation set.
- End-to-end pipeline that finds and downloads match videos, detects the court, players and shuttle, and marks each rally's hits and hitters with heuristic and learned models.
- Against MonoTrack (CVPR 2022), my annotator gets about a quarter more rallies fully correct, and my court detector cuts median court-corner error from 6.5 px to 3.8 px.
- Dataset of 6,833 professional rallies with pose, court position, performance measurements and commentary passages, to support training a weakly supervised auto-grader.
Object Detection (Australian Ferns) - Comparative study of two object detection models on a hand-annotated dataset.
- Compares YOLOv8m (CNN-based detector) with RetinaNet on a MiT-b0 backbone (hybrid CNN+transformer).
- Explainable-AI (GradCAM, EigenCAM) to understand classification confusion, introduce hard negative images and validate improvements in feature mapping.
- Both architectures were tuned through hyperparameter grids covering 100+ configurations.
- Dataset scraped from iNaturalist and annotated in CVAT; splits stratified by per-class annotation density.
LSTM Market Classifier - Time-series inference model and data pipeline.
- 0.75 precision vs 0.23 baseline (threshold optimised).
- Dual-tower LSTM model, defensive data pipeline, and feature engineering for momentum/lag in non-stationary series.
- Public: analytical write-up, Python scraper modules and detailed notebook.
- Most of the implementation code is private, but shoot me a message if you're working on something similar and want to talk about it.
HPC Matrix Convolution (C, MPI, CUDA) - Parallel matrix convolution, benchmarked across matrix sizes and neighbourhood depths.
- Slab and patch decomposition.
- CUDA shared memory tiling per thread block, with direct memory and chunking fallbacks for deep neighbourhoods and VRAM constraints.
- MPI: up to 15x speedup on 16 processes; CUDA: up to 930x over a single CPU process.
- Repo private (university coursework). Please message me to view.
Other projects include a Java Chess GUI, Java Ordering System and Relational Database with Custom Views.



