Global trade blotter
A front-office blotter that gave 200 sales and marketers worldwide one view of their group's trades.
Reference data services
A service-oriented reference-data layer for the whole Rates marketing application stack, replacing copies of the same data in every system.
Risk and compliance governance
Bringing the strategic trade-capture and revenue-reconciliation system up to the bank's compliance and risk standards so it could be rolled out globally.
Bulk and strategy trade processing
A framework for packaged and strategy-based trades, where groups of trades share economics and must be processed together to hedge and hit a target return.
Structured trade processing
A single framework for the end-to-end processing of structured and exotic hybrid trades, replacing manual workarounds that caused errors and control gaps.
Infrastructure upgrade and data-centre migration
A unified hosting platform for the global sales and marketing application stack, then its migration to a new data centre.
Component consolidation
Retiring a legacy web component in favour of the strategic rich-client platform, cutting a parallel code base and the cost that came with it.
Prime brokerage: hedge fund services
Running the trade-capture and processing platform behind give-up trades for two external hedge funds, with 300 EMEA users relying on it.
Why I Chose Cloudflare Workers Over Firebase for My iOS App Backend
When I needed a backend for a cycling club iOS app, the obvious choices were Firebase, AWS, or Supabase. I chose none of them. Here is why Cloudflare Workers was the right call — and what the architecture looks like in production. The Requirements The DCC Weekly Activities app needed a backend that could: fetch data from the Strava API, aggregate per-member stats for the current week, cache results for fast mobile responses, handle OAuth token refresh server-side (keeping sec
How I Use AI as a Force Multiplier: The CLAUDE.md Pattern
AI coding assistants are transformative — but only when given the right guardrails. Here is the pattern I developed for using Claude Code to ship 55+ features across 80 Swift files without a single regression on critical paths. The Problem with Unguided AI Without constraints, AI assistants are unpredictable. Ask it to add a button and it might refactor your authentication flow in the process. Ask it to fix a bug and it might delete a file it considers unused. The raw capabil

