I work on cloud and AI architecture for organisations that have to get it right the
first time - banks, insurers and capital markets firms now, defence and national
security before that. Half my time is spent with C-suite leaders on strategy and
architecture. The other half is hands-on, because in a regulated environment the model
is the easy part: the work is groundedness, guardrails, what a request costs at volume,
and being able to show why the system answered the way it did.
2016
The AI thing started early
My first encounter with AI was in 2016 at the University of Leicester, doing research
on Probabilistic
Latent Semantic Analysis - a topic model that infers the hidden structure behind
the words in a document. Different maths from today's models, same problem: text
carries more meaning than the tokens it is made of. That is the problem embeddings
solve now, which is why retrieval feels less like a new idea than an old one with
better tooling - its own first application was latent semantic indexing. When I graduated I went into defence rather than staying
in research. That detour through national security, government and cloud is why I
know what it takes to ship AI in a heavily regulated environment.
Computer Science BSc - First Class Honours, University Scholarship
2015 - 2018
2018 - 2021
Before AWS
~14,000
camera sets and mobile units
90M
plate reads per day
Structured messages per second, from published daily volumes
National ANPR Service~1,040 / sec
NHS Spine (national messaging)~500 / sec
90M plate reads a day against NHS Spine's 43M messages a day. Both move small structured records, so the comparison holds.
I was at Leonardo and then 6point6 (now Accenture), working across defence, national security and government. Most of those projects I can't talk about - but I was one of the engineers behind the National ANPR Service - over 90 million plate reads a day from roughly 14,000 camera sets and mobile units, about 1,040 a second averaged out and a good deal more at rush hour. The pipeline retries; the event doesn't. The car has already driven past, so a read you drop is a read nobody can replay. That constraint decides the architecture: you buffer at the edge, you make every stage idempotent, and you size for the peak rather than the average.
GOV.UK
2020 - present
Building products
50+
cities served
Alongside the day job, I architected and led a team of developers building two two-sided taxi marketplaces from the ground up - real-time quoting and fare comparison across operators, booking, operator onboarding and dashboards, and payment systems handling thousands of transactions. Tranzitt compares minicab fares across UK operators; Taxida covers over 50 cities across southern India. Neither runs its own fleet: the operators do, and the platform is what stands between a customer and a booking that has to work. When it goes down, someone's stranded at an airport.
I advise C-suite leaders at the largest insurers, banks and capital markets firms on cloud and AI strategy, and I stay close enough to the build to be useful: which model to pick and why, what a request costs at production volume, where the latency actually goes, and how you evaluate an agent before it is allowed anywhere near a regulated process.
~583,000
hours of coordination overhead cut (estimated)
Earlier at AWS I built a service lifecycle management tool that cut an estimated 583,000 hours of internal coordination overhead in six months, adopted across AWS and integrated into the AWS Health Service as a core mechanism. I also worked with the Bank of England and the FCA on incident management, and led crisis response for critical financial services customers - the kind of work where the postmortem is read by a regulator.
Co-authored. Managed blue/green deployments don't support Aurora Global Database, so LSEG needed another way to cut over a globally distributed PostgreSQL estate without taking production down to restore a backup. The post walks through cloning the live cluster, keeping it current with logical replication, converting it into a global database, and the pre-cutover checks that decide when it is safe to move traffic.
Eight contributions merged upstream into public repositories. Two into AWS
repositories - a new serverless pattern and a build-architecture fix - and six into
firstmate, an agent distro for running a crew of coding agents. Every one went
through a maintainer who had no reason to be kind about it.
A spoken interface, GitLab merges and watcher recovery
kunchenguid/firstmate
4.4k GitHub stars
Six pull requests merged by the maintainer, in Shell and Python. The largest adds a spoken interface over Amazon Nova Sonic, holding the model session on the desktop so the laptop capturing audio never holds an AWS credential. The rest: GitLab merge requests routed through the existing guarded merge path, a report on tooling that is installed but inert, and three fixes to a supervisor that was losing track of abandoned claims and dropped connections. 70 files, ~13,700 lines added, over half of it tests.
Access Bedrock via API Gateway with Cognito user management
aws-samples/serverless-patterns
1.8k GitHub stars
A production shape for putting an LLM behind an authenticated, rate-limited, domain-restricted endpoint: Cognito for identity, API Gateway for throttling and usage plans, Lambda for the Bedrock call. Complete CDK Python app - 19 files, 1,451 lines, merged March 2024.
Also merged upstream: a build-architecture fix in
aws-samples/amazon-transcribe-post-call-analytics that forces npm and node to
x86_64 so the local build produces x64 native modules on Apple Silicon -
one file, five lines.
These days
How I build
Almost everything I ship now is written with AI in the loop, which mostly means my
time goes to the parts that don't automate: choosing the model, drawing the
boundaries of what an agent is allowed to do, and writing the evaluations that
decide whether it goes near anything that matters. This site was built that way too.
Speaking
I've spoken at AWS Summits in London, Paris and Dubai.
AWS Summit London 2026 - led the Lightning Talk track, selecting and coaching
all 23 speakers to a 4.7/5 content CSAT at a 20.2K-attendee event
I started running coding workshops for kids when I was in sixth form, and I still give
talks at schools and to university students. Because the kid who didn't know anyone in
tech could've used someone like that.
I also angel-invest in a handful of early-stage startups.