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 applying reinforcement learning to simulate and control groups of autonomous vehicles 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.
- Extensively tested with 43 high-signal unit tests (28 backend, 15 frontend).
PythonTypeScriptRedisReactDocker
ModulePal
Web app enabling Warwick students to review academic modules, integrating with university systems to ensure legitimacy and harnessing student data for 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 and other advanced features, with Firebase Authentication managing auth state.
- Optimised with an efficient NoSQL data schema, in-memory SQL caching layer, scalable metric computations via moving averages, and paginated queries.
TypeScriptJavaSQLReactSpringFirebase