Architecture & modernisation
Evolving monoliths into platforms without stopping the business, with decisions written down so they stay reviewable.
Principal Software Engineer at eMed UK
I design and ship safe changes in regulated systems: payments, healthcare interoperability, multi-region platforms and AI-assisted delivery.
Principal Software Engineer with 30+ years shipping software, leading architecture since 2018 at Babylon Health and eMed UK across a healthcare platform operating in the UK, US and Canada. I am a player-coach: I write the design doc, review the PRs and still ship the hard fix when it matters.

Selected impact
B2B onboarding automation across 700+ client organisations and ~3M members; setup errors cut from ~7% to under 1%.
Decommissioned a UK telehealth platform with GDPR-safe exports and an immutable, access-controlled media vault.
Real-time Twitter firehose ingestion, ranking and anomaly detection for electronic trading firms at FSWire.
What I do
Cross-cutting architecture for platforms that move money, handle patient data and span jurisdictions — and the engineering culture to keep them healthy.
Evolving monoliths into platforms without stopping the business, with decisions written down so they stay reviewable.
Multi-provider, multi-region payment domains, configuration-driven pricing and zero-downtime provider migrations.
HL7 FHIR domain modelling, e-prescribing and signing, and pharmacy claims submission and reconciliation.
Back-pressure, bulkheads, autoscaling signals, graceful shutdown, load testing and cost-aware architecture.
Application security, credential rotation, GDPR operations and residency-clean, per-region stacks for new markets.
Harnesses, agent standards and skills catalogues that hold AI-generated PRs to the same checkable rules as human ones.
Open source · MIT
An agentic delivery harness for Pi that turns a free-text request into a validated contract (brief, spec, plan and verification evidence) before anyone writes code. Built around one metric: how little of an engineer’s attention it consumes.
❯ /dev PROJ-1234 add OAuth2 refresh token support pattern implement/standard align → brief.md spec → spec.json (AC-1 … AC-4) plan → plan.json (TDD-ordered) tasks test → review-test → code → review-code ❯ /dev finish VERIFICATION COMPLETE Verdict: gaps (3/4 pass) AC-1: pass auth.test.ts:42 AC-2: pass refresh.test.ts:17 AC-3: fail no test for configurable TTL AC-4: pass eslint no-direct-jwt
Experience
Own technical strategy and architectural direction for a global healthcare platform. Architecture lead across all engineering pillars, setting cross-cutting architecture, reference patterns and standards, and bridging commercial intent and technical delivery through B2B2C expansion, GLP-1 product lines, US and Canadian market entry and the Babylon legacy sunset.
Led in-house and offshore teams delivering white-label small-business SaaS for Lloyds Banking Group and RBS, combining architect and lead-engineer responsibilities.
Led engineering end to end for a real-time social and market data platform serving high-frequency and electronic trading firms.
Designed and engineered a BlackBerry FX messaging and trading application.
Led the iManage WorkSite mobile team, engineered the WorkSite FileShare prototype and led the team behind server-based email management for the WorkSite suite.
Writing
Architecture, delivery and the occasional war story, from real-time finance to regulated healthcare.
A seed job, a build artifact, five services across three package managers and an AWS emulator, all brought up in dependency order and wired to each other by one command. How we built a thin orchestration layer from a YAML registry, a pure-JS resolver and Tilt, and the things we deliberately didn't build.
Four years on from my Babylon-era setup: agent skills in Pi, tmux and Neovim as the whole IDE, Gmail in the editor, dotfiles that build a machine in one command, a PARA notes repo as a second brain, and the same session from desk, iPad or iPhone over Tailscale and mosh.
A replacement workflow engine would have cut the licence bill by more than 90%. The honest business case said the question wasn't cost at all. How to write a platform-migration case that counts engineering time, opportunity cost and operational maturity honestly.
Entering a market that requires patient data to stay in-country doesn't have to mean cloning your whole platform. Split it into data cells and processing hubs, then hunt down the places data quietly comes to rest.