Featured Projects
Filter by technology

Compressive Streaming for Geospatial PipelinesActive
MRes thesis on beating main-memory bandwidths for geospatial computation via cache-optimised in-memory data compression, implemented in C++ with AVX256.
- Accelerated geospatial computation by applying SIMD compression to keep data close to CPU caches, fusing compute into the decoding stage.
- Achieved up to 2x speedups over state-of-the-art on real workloads (NDVI).
- Involved micro-optimisation with CPU-cache and branch-predictor trade-offs, and tuning on a HPC.
- Utilised SLURM to manage HPC resources, benchmarking at scale (>8k hours).
- Applied multi-objective Pareto optimisation to narrow the search space of codec combinations for optimal space-vs-time tradeoffs.
- Awarded 78% (Distinction) for the thesis.
- Featured on the Cambridge Computer Science department's website.
- Ongoing: extending the technique to a broad set of real geospatial datasets (Landsat, Sentinel, SRTM, ETOPO1, WorldClim) and to nonlinear multi-band kernels (NDVI), with speedups approaching the compression-ratio limit under concurrency. See recent technical reports. A paper is in preparation.
C++PythonSlurmGDALAVX256
Multi-Agent Car Parking using Reinforcement Learning
Undergraduate thesis on multi-agent reinforcement learning for autonomous vehicle parking, using PPO and Unity ML-Agents.
- Trained agents with IPPO and MAPPO, and implemented DQN from scratch, using TensorFlow/Python.
- Designed a flexible environment modelled as an MDP with independent agents and dynamic goals, implemented in Unity using C#.
- Achieved a 98.1% parking success rate with up to 7 cars, outperforming single-agent baselines.
- Explored collaborative and competitive behaviours with variable communication and density.
- Revealed novel group dynamics such as 'leaky' collaboration and competition-induced cooperation.
- Scaled training on the university's HPC using Slurm.
- Presented at ICUR '22.
- Awarded 85% for the thesis (top 2% / 250 in cohort).
PythonC#UnitySlurmTensorFlow
Arbitrage Simulation
Event-driven full-stack simulation of an arbitrage bot for betting.
- Simulates odds changes and bet execution delays to explore slippage.
- Distributed Python/FastAPI backend using Redis for inter-service communication.
- Real-time TypeScript/React frontend streaming from a webhook.
- Dockerised backend.
- Tested with 43 unit tests (28 backend, 15 frontend).
PythonTypeScriptRedisReactDocker
ModulePal
Web app for Warwick students to review academic modules, integrating with university systems for verified reviews and confidential grade-based analytics.
- Used semi-officially in Warwick's Computer Science department, with over 5k reviews.
- Harnesses Warwick student data via OAuth, personalising the experience to a user's university account.
- Secure Spring (Java) backend using an in-memory ORM (SQL/Hibernate) database for caching, and a NoSQL Firebase Realtime Database for persistent storage.
- React (TypeScript) frontend using hooks, with Firebase Authentication managing auth state.
- Optimised via a NoSQL data schema, in-memory SQL caching layer, moving-average metric computations, and paginated queries.
TypeScriptJavaSQLReactSpringFirebase