I build AI systems that actually ship, not just impressive demos. Agentic workflows in LangGraph, multi-modal LLM pipelines, and the unglamorous cloud infrastructure that keeps it all running without paging me at 3am. 12 years in, and I'm still weirdly happy about a clean deploy. Based in the UK, currently obsessed with fintech and AI, and on the lookout for the next hard problem to level up on.
Impact at current role
01
AI agent governance: Writing the rulebook so AI coding agents behave themselves in a production codebase, instead of quietly reinventing the auth system overnight
02
Observability as code: Datadog monitors and dashboards shipped as code via SST, because hoping nothing breaks isn't a monitoring strategy. Alerts routed to Slack and PagerDuty by severity
03
Load & reliability: Chased a throughput ceiling with Artillery and Playwright until it gave up. Edge caching and autoscaling now keep things calm under peak traffic
04
Full-stack ownership: React/TypeScript frontend, Node.js backend, AWS infra underneath. If something breaks, there's nowhere to hide, which is exactly how I like it
An LLM app that reads your receipts so you never have to type 'Tesco £4.20' into a spreadsheet again. Structured, searchable financial data with an analytics dashboard and zero manual entry.
Problem
Receipts and bank statements show up in every format except a convenient one: photos, scanned PDFs, screenshots, bank exports. Typing them in by hand is slow, and honestly, nobody wants that job.
Approach
A multimodal AI pipeline reads each document regardless of format and extracts structured fields. Every output gets validated against a strict schema before it's allowed anywhere near storage. Vector embeddings mean you can just ask it things in plain English instead of writing SQL.
Result
Consistent, queryable financial records out of whatever mess you throw at it, with token costs kept lean through context-scoped retrieval. Upload, extraction, storage, analytics: the whole thing runs on Vercel.
A mobile app that tracks where your money actually went, using LangGraph to extract receipts with the kind of confidence-based retry logic I wish my own bank statements had.
Problem
Manually matching receipts to bank transactions on your phone is exactly the kind of chore that makes people give up on budgeting by February.
Approach
A LangGraph agent handles receipt extraction with confidence-based retry loops and automatic schema fallback for when the AI isn't sure. A clean hexagonal architecture keeps AI/domain logic separate from infrastructure across a shared monorepo, and TrueLayer's Open Banking APIs handle OAuth account linking and background sync.
Result
Receipts and live bank feeds get categorised automatically and reliably, with session-based authentication backed by Valkey doing the boring but important security work.
Wrote the rulebook for how AI coding agents (Cursor, Claude Code) are allowed to behave across our codebase, mostly 'ask first, refactor later'. Chased down an ECS throughput ceiling with Artillery and Playwright until it gave in, with CloudFront edge caching and some autoscaling tuning keeping things calm at peak. Also turned Datadog monitoring and IAM policy into actual version-controlled code via SST.
ReactTypeScriptNode.jsAWSDatadogAI Infra
Cloud · DevOps
Experienced Programmer
Pixel Toys, UK · Aug 2024 – Aug 2025
Built multi-stage SST infrastructure on AWS CDK so deploying stopped being a ritual involving crossed fingers and a Slack message that just says 'pushing now'. Set up GitHub Actions pipelines that quietly block a merge the moment a vulnerable dependency sneaks in.
AWS CDKSSTGitHub ActionsTypeScript
Frontend · CMS
Frontend Developer
Pixel Toys, UK · Aug 2022 – Aug 2024
Moved the web portal off its ageing CMS onto Astro and Sanity on AWS, pairing server-side rendering with headless content management. Pages load faster, and the editorial team stopped filing tickets about publishing being slow.
AstroSanityAWSSST
Full Stack · Mobile
Full Stack Developer
Freelance · 2018 – 2021
Helped startup founders and enterprise clients figure out what to build and how, then actually built it. React Native and Flutter apps with Redux, plus Laravel and Node.js APIs backed by MySQL, across healthcare, fintech, and news.
React NativeLaravelNode.jsMySQL
Mobile
React Native Developer
Tech9logy Creators · 2016 – 2018
Solo-built and published production iOS/Android apps, wiring mobile frontends into Magento, WordPress, and Salesforce CRM for real-time data sync. Learned exactly what App Store review really means the hard way.
React NativeJavaScriptREST APIs
Frontend · Backend
Web Developer
Abacus Desk IT Solutions · 2014 – 2016
Cut my teeth building web applications and e-commerce sites in PHP, WordPress, and Magento. Also became the office's go-to person for malware cleanup, a skill nobody puts on a job spec but everybody eventually needs.
JavaScriptPHPMySQL
LET'SCONNECT.
Open to new roles and genuinely excited about the next hard problem. If you've got one, my inbox is right here.