What have I built?
01Verifying a data migration was complete
data platform · verification
- problem
- Record counts can match while the contents differ. There was no way to show that a migration had moved everything.
- built
- A tool that derives a data graph for each service and checks the migration against it using content hashes. An AI model interprets the infrastructure code; a deterministic engine derives the schema from the data.
- value
- Completeness could be shown service by service, and differences were found during the migration rather than later.
data migration · graph modelling · content hashing · AI-assisted
02Single sign-on for a national contact centre
identity · SCIM 2.0
- problem
- Telephony users were managed in Entra ID. They also needed accounts in Amazon Connect, kept in step as people joined, moved and left.
- built
- A custom SCIM 2.0 API, written from scratch, connecting Entra ID to AWS IAM, with SAML 2.0 federation for sign-on.
- value
- The cutover and the ongoing user lifecycle were both automated. I designed and built it.
SCIM 2.0 · SAML 2.0 · Entra ID · Amazon Connect
03Call recordings for a national health line
digital health · resilience
- problem
- A nurse-on-call service records every call. Recordings must not be lost, and the existing pipeline was failing too often.
- built
- A TypeScript and AWS pipeline using SQS and Lambdas, where work is queued and retried instead of dropped. Later re-architected to improve fault tolerance.
- value
- Failure rates dropped. Under heavy load the system slows down rather than losing recordings.
TypeScript · AWS Lambda · Amazon SQS · fault tolerance
04Monitoring call flows with AI transcription
digital health · self-initiated
- problem
- A contact flow can break while the infrastructure metrics still look normal. These failures were usually reported by callers.
- built
- A framework that places automated calls, transcribes them with Whisper running locally, and compares the result against what the flow should say.
- value
- Failures are detected automatically, which shortened the support team's reaction time. The models run locally, so audio stays in-house.
Whisper · Hugging Face · Twilio · Amazon Connect
05Long-term vehicle booking across a dealer network
automotive · Go
- problem
- Dealers at a top-selling car company wanted to offer rentals lasting months. Availability, pricing and allocation all work differently over that length of time.
- built
- Go APIs on AWS handling the booking and availability logic across dealers, with payments centralised through Stripe. I worked on it from requirements through to deployment.
- value
- A long-term rental product the dealer network could offer to customers.
Go · AWS · Stripe · REST APIs
06Faster shopping APIs for a national retailer
retail · performance
- problem
- The core shopping APIs of a national Australian retailer were slow under load, and the causes were spread across legacy code paths.
- built
- Profiled the application with Dynatrace to find where the time was being spent, then refactored those paths.
- value
- API response times improved by 20% to 60%.
performance profiling · Dynatrace · refactoring
07Retrieval platform that checks its own citations
agentic AI · RAG
- problem
- Retrieval systems report their own sources, and those citations are sometimes wrong.
- built
- Semantic search over a large OCR'd corpus with agentic retrieval, and a separate deterministic engine that matches every citation back to the source text.
- value
- Citations are checked against the source rather than taken from the model's own report.
Python · RAG · agentic tool-use · embeddings
also delivered
- telephony failover. Amazon Connect set up as failover for a Twilio contact centre, removing a single point of failure.
- Tesco, as solution architect. Added circuit breakers to the grocery storefront to improve uptime, and re-architected Transport & Tracking on SOA principles for the global divisions.
- monolith to microservices. Order management and voucher distribution moved into decoupled Node.js services.
- real-time score delivery. Node.js and Redis pushing live match scores to a UK wagering platform.