AI/ML Engineer building production-minded systems — RAG, multi-agent LLM orchestration, computer-vision anomaly detection, and reinforcement learning. MSc Data Science & AI, University of Liverpool.

GitHub LinkedIn Email CV (PDF)

Projects

Started with arXiv RAG to optimise retrieval (Hit Rate 60→100%, MRR 0.51→0.82). Hit the limits of a single-LLM approach, so architected FinScope — a LangGraph multi-agent system with a Critic Agent for hallucination checking. Below, in order of progression:

arXiv RAG System
Hit Rate 60→100% MRR 0.51→0.82 async pipeline
End-to-end RAG for academic papers, built and optimised from scratch. FastAPI lifespan startup, fully async I/O, and a documented 28pp fine-tuning regression traced to training-data contamination.
FastAPI · ChromaDB · LLM (Qwen3 4B / Ollama) · Docker
FinScope — Multi-Agent Analyst
3-agent LangGraph ~15s parallel hallucination check
Multi-agent RAG over SEC EDGAR & Companies House filings. Retriever → Analyzer → Critic pipeline, parallel analysis via asyncio.gather, and a Critic Agent with a conditional retry loop.
LangGraph · Groq (llama-3.3-70b) · ChromaDB · FastAPI · Langfuse
DefectVision
100% AUROC (bottle) normal-only training real-time webcam
Real-time manufacturing defect detection with PatchCore — trained on normal images only, no labelled defects. FastAPI inference API plus a Streamlit dashboard with live webcam streaming.
Anomalib · PatchCore · PyTorch · OpenVINO · FastAPI · Streamlit
TORCS RL Racing Agent
SAC · 9.7M steps reward shaping curriculum learning
Autonomous racing agent on the TORCS Corkscrew track. Self-implemented SAC (auto-entropy, twin-Q) with reward shaping and curriculum learning, plus a catastrophic-forgetting investigation.
Python · PyTorch · SAC · PPO

Competition

Reply AI Challenge 2026 — Multi-Agent Fraud Detection
137 / 1,971 teams (Top 7%) 6-hour sprint 5-agent system
Built a multi-agent fraud-detection system in a 6-hour timed challenge: a LangChain orchestrator routing transactions through Isolation Forest, an LLM investigator, and Critic / Memory agents — with Langfuse tracing and a fixed LLM budget. Placed 137th of 1,971 teams.
LangChain · Langfuse · IsolationForest · Whisper · OpenRouter