Physics. Then Mechanical Engineering at Imperial, third best exam results in my year. Specialised in Machine Learning. Turned down a PhD scholarship to build in industry first. Now Senior AI Engineer at Management Solutions, first member of its UK R&D branch, building agentic AI and data systems for banks and energy majors. I also work part time for several deep tech VCs. Always happy to talk Machine Learning and Simulation.
An open experiment in artificial societies, in the spirit of Stanford's Smallville and Altera's Project Sid. The idea: build a population of autonomous agents, each with its own temperament, needs, and memory, connect them in a social network, and let group behaviour emerge from individual rules. Then use that population as an instrument.
Why. A focus group is ten people in a room and a hope that they generalise. A survey measures individuals, but reactions aren't individual, they're contagious. A simulated society captures the part those tools miss, the network effects. Drop a message into the tank and watch how it spreads before it ever touches real people. The school above is a sketch of that idea, not the system itself. The real build runs offline.
This is the research direction I'm taking to graduate study.
A retrieval-augmented system that automates IRB regulatory attestation workbooks for risk models, with a validation layer that screens its own outputs for hallucinations and bias. Attestation is slow, manual, and unforgiving of error, so answers had to be traceable, not just fluent. Built on transformer LLM RAG pipelines with Langchain, LlamaIndex, Pinecone, and Airflow, and taken from proof of concept to MVP as the AI expert on the engagement.
Internal tooling built for R&D workflows that proved useful enough to be sold on commercially. The core is a small language model trained with LoRA for the team's domain, paired with a second validation model that audits the first one's outputs, screening every answer against helpful, honest, and harmless criteria before it reaches a user. LIME-based explanations power that validation layer, so when something fails, you can see exactly why.
Embedded engineering inside two energy majors: a payment compliance platform at Iberdrola, and a statement reconciliation system plus its reporting layer at EDF Trading. Both needed regulatory-grade data their teams could trust every day, at scale, so I built AWS-based ETL pipelines with SageMaker, Glue, RDS, and Lambda, driven by Python and SQL transformations, working alongside the teams that run them.
Time series forecasting and backend payment reconciliation at a unicorn energy startup, where trading lives on forecast accuracy and settlement errors cost real money. I built weather-to-demand models for balancing-market operations and seasonal outlooks for hedging, using recurrent deep neural networks heavily fine-tuned in TensorFlow, plus a Python and SQL pipeline that automates balancing operations and invoice reconciliation.
Part-time scouting for two early-stage funds since 2025, identifying and evaluating high-potential pre-seed startups and founding teams, with a focus on university startup ecosystems. At pre-seed the best deals are found where they form, not where they pitch, so the job is pitch deck screening, founder assessment, and market research that filters signal from noise before it reaches the partners.
A Flask recommender system, similar to Instagram Reels or TikTok, that suggests what to watch and rebuilds your video feed around it. It implemented content personalisation and a toggle that limits addictive content, both before Instagram recently released the same features for Reels.
I've freelanced creative technology work, but these two pieces weren't commissions. I built them purely for myself, an exploration of graph networks made of cached images: faces reassembled live from their own history.
The system captures snapshots of your expressions and layers them back over your live face, a cache of how others remember you. Screenshots are captured with one hand while the network is processed with the other. Designed for two people wearing each other's snapshots. OpenCV face detection, TouchDesigner compositing. This one has sound, unmute it.
The snapshot cache turned on a single sitter. Fragments of past expressions drift over the present one until the face is a collage of its own history. The mosaic is voice-driven: it swaps in syncopation with singing, built for an artist to perform with live. These are real-time production pieces, so nothing is added in post. What you see on stage is the system running.
The longer version: physics, summa cum laude, then a Master's in Advanced Mechanical Engineering at Imperial College London, third best exam taker in my year, with the PhD scholarship that came with it politely declined. A thesis on time series forecasting for weather got me into machine learning, and I never left. Since then: a Data Engineer internship with Sener working on ESA's satellite control database, trading quant and operations at Fuse Energy, and now the first R&D engineer in Management Solutions' UK branch, shipping agentic AI, ML, and data systems for banks and energy majors.
Outside of work you'll find me playing chess or training for an insane endurance adventure.
Fun fact: I once took second place in an Oxford Mathematical Essay Competition writing about matchmaking algorithms. Incentives on networks, again. It's kind of what started my interest in networks.