Four engagements
Case studies
A production AI agent inside a regulated trading venue, two open-source agents shipped in 2026, and three and a half years rebuilding a $330M AUM platform on Azure.
Case 01 · Oct 2024 – Apr 2026 · VP of Technology
Intick · block trading venue
VP of Technology at a FinTech startup electronifying off-market block trading of futures and options, including Eurex futures spreads, for buy-side institutions. Full technical authority over the platform, plus a Claude-powered incident-triage agent running in production.
The agent
Event-driven incident triage
Incidents published to Azure Service Bus queues were consumed by an agent that ran a tool-using loop to investigate and identify the root cause, then alerted the right people in Slack.
A model per task
Claude Haiku for lightweight intent extraction, Claude Sonnet for the multi-step triage loop. Cheap where the work is simple, capable where it is not.
Tools became company infrastructure
The agent's tools were extracted into MCP servers used across the company (a customer's invoices for a period, a customer's orders), so colleagues could use the same capabilities in their own work.
What I owned
- Full technical authority: architecture decisions, technology budget, hiring and dismissals, and the technical liaison between CEO/CPO and engineering.
- Architected the Python-first backend on Azure and wrote production code in it (asyncio, FastAPI), with microservices, containerisation and infrastructure-as-code patterns.
- Architected FIX connectivity into counterparties' EMS and OMS systems via the message broker, integrating tier-1 investment banks and asset managers with trillions under management (counterparty names under NDA).
- Delivered direct Eurex exchange connectivity over IPSec-over-GRE on dedicated Cisco routing.
- Engineered for an unforgiving failure profile: a single block order in futures spreads could carry tens of thousands of pounds in commission alone. Reliability and correctness were the product.
- Led the ISO 27001 compliance programme to financial-services requirements.
- Built, mentored and led the cross-functional engineering team through go-live, where integration reliability was a sales asset for winning institutional counterparties onto a new venue.
Case 02 · 2026 · open source
azure-costs-analyzer
A read-only Claude Code skill that runs a 20-minute Azure cost review on any tenant — fifteen citation-grounded rules, eighteen collectors, an HTML+Markdown report. Built for portfolio operators who want one repeatable agent across every portco's tenant, not a £15k consultant deck per company.
Headline result
£5,436 – £7,369 / month identified savings on a tenant doing roughly £30k/month in Azure spend — roughly 3× Azure Advisor's published recommendation ceiling for the same tenant. Real run · UK-based Azure tenant · 2026-05
- Cost rules
- 15, each citing a committed Microsoft / FinOps Foundation source.
- Collectors
- 18, all routed through one read-only gate that rejects 33 forbidden write verbs before subprocess.
- Knowledge corpus
- 14 documents, frontmatter-versioned with source URL, retrieval date, and SHA256.
- Tests
- 227 passing (1 skipped — real-tenant smoke test gated on env var).
- Output
report.md+report.html(print-friendly CSS) +findings.yaml.- Wall-clock
- ~20 minutes for a tenant with a few dozen subscriptions.
Architectural bets
Read-only is a guarantee
Single function (
azcli.run_json) gates every Azure CLI call. Twenty-three unit tests verify it rejects every one of 33 forbidden write verbs beforesubprocessis reached. Adding new collectors does not loosen this.Citation-grounded knowledge
Every rule declares
KNOWLEDGE_REFSpointing at committed .md files. A rule that cites a missing document fails to load. The model computes; the rule cites. Refresh script tracks upstream SHA256 drift.Severity × Confidence as independent axes
"We think this £4k reservation is wasted" gets handled differently from "this £4 IP is definitely orphaned". Single-axis lists hide that distinction; the report keeps it.
Forecast over snapshot
Underused-reservation findings combine spend, utilisation, and term-remaining (read from
expiryDateTime) into one forward-looking £ figure — e.g. "£4,558 – £5,535 between now and expiry" on a 9-month-remaining reservation. Advisor doesn't combine those axes.Savings as ranges, not point estimates
Every monetary recommendation comes with a non-empty
assumptionstring explaining what's not netted out: negotiated discounts, reservation coverage, regional price drift. The range itself is the answer.
Case 03 · 2026 · open source
mdjira
An open-source Claude Code skill that turns rough markdown product briefs into properly-sized Jira backlogs — INVEST-compliant stories, modified-Fibonacci sizing, BDD acceptance criteria, full epic / story / subtask hierarchy.
Headline result
48 Jira tickets generated in five minutes from a single deliberately rough markdown product brief. 17 stories totalling 91 points; sizing distribution 1×2pt, 3×3pt, 8×5pt, 5×8pt — zero 13s. Run on a representative product brief, 2026-04
- Tickets created
- 48 in Jira (epics, stories, subtasks).
- Stories
- 17, totalling 91 story points.
- Sizing distribution
- 1 × 2pt · 3 × 3pt · 8 × 5pt · 5 × 8pt · zero 13s.
- Priority spread
- 1 Highest · 5 High · 9 Medium · 2 Low. Defensible, not flat.
- Time to backlog
- ~5 minutes from markdown to live Jira tickets.
Methodology
The skill is not a wrapper around a generic LLM call. It encodes specific, citable practitioner standards and refuses to produce output that violates them.
Story shape — INVEST
Independent, Negotiable, Valuable, Estimable, Small, Testable. As set out by Bill Wake in XP123 (2003) and refined by Mike Cohn in User Stories Applied. Each generated story is checked against all six.
Sizing — modified Fibonacci
1, 2, 3, 5, 8, 13, 20, 40, 100, per Cohn. The skill enforces the practitioner rule that a 13 is a smell and decomposes anything that lands there. The result above shows the rule in effect: zero 13s across 17 stories.
Acceptance criteria — Given / When / Then
As introduced by Dan North in Introducing BDD (2006). Each story carries explicit criteria, not vague success conditions.
Hierarchy — epic / story / subtask
Atlassian's epic / story / subtask hierarchy, with one anti-pattern explicitly suppressed: the "Miscellaneous Bug Fixes" epic that becomes a permanent dumping ground.
Decomposition — Pichler's split axes
Roman Pichler's compound-story decomposition: split by workflow step, by data variation, by interface, by CRUD, by non-functional concern (see Pichler's notes). The skill picks a split axis and explains the choice.
Case 04 · May 2021 – Oct 2024 · 3 years 6 months
Cult Wines · asset trading platform
Front-office architect, then principal architect and Azure DevOps lead, at an alternative-investments firm managing $330M AUM in fine wine, with offices in London, New York, Hong Kong, Singapore and Shanghai. Led the rebuild of the decade-old monolith that ran the whole business onto an event-driven Azure platform.
Headline results
- Client onboarding
- $10M of new AUM within its first three months.
- CultX
- B2C trading platform on web, iOS and Android: real-time pricing across 100k live markets, over $250M of wine listed, launched into China.
- Vintrade rebuild
- The monolith behind the entire $330M AUM operation, moved onto an event-driven Azure platform.
What I owned
- Built a green-field asset trading platform with React and React Native, sharing logic across web and mobile to reduce delivery time and bug surface.
- Built a Next.js web app to meet SEO requirements where they mattered.
- Implemented Auth0 MFA across multiple platforms and applications.
- Reorganised the data-pipelines strategy and helped introduce Databricks on Azure.
- Introduced an OpenAPI strategy with Azure API Management.
- Led the front-office API layer with Azure Functions and a horizontally-scalable CosmosDB tuned for high read throughput.
- Set up an event-driven API strategy on Service Bus.
- Initiated Cypress end-to-end smoke testing for the new systems.
- Led migration of an old, technically-deprecated core business system onto the new platform.
- Helped the DevOps team migrate from PowerShell to Terraform-based IaC.
- Migrated app services into Azure Kubernetes Services (AKS).
- Built numerous microservices for operational and third-party integration needs.
- Introduced test-driven development with deployment gates blocking unsecure or untested code.
- Implemented a GraphQL layer on both UI and backend with Apollo.
Earlier engagements
Co-founder and CTO of a warehouse management SaaS (2021 – 23, alongside Cult Wines): live in five warehouses, profitable, exited via sale. Senior frontend developer at HomeToGo in Berlin (Apr 2019 – Apr 2021, 2 million daily users). Node.js / GraphQL contracts via Trustflux Ltd (Dec 2017 – Apr 2019). Before that, .NET backend in logistics, full-stack at a cryptocurrency brokerage, and 10+ freelance web applications (2014 – 17). Full chronology on the home page.
More detail on any of the above on request.