I take a business problem, find the data problem underneath, and build the system that moves the metric.

I lead the team that ships it. Architecture first, then delivery, then production — data engineering through to agents that touch a system of record.

Client data is confidential, so I rebuild each system on public data and publish the code, the notebooks and the write-up. You never have to take my word for it.

coverage

What I have shipped, by business function and stack layer

One square per layer a system covers. The empty squares are honest — a full grid would be a lie.

14 systems · 39 cells
all industries
Data engAnalyticsMLLLM / RAGAgentic
Marketing2
Sales
Customer22
Operations22
Supply chain22
Finance
Risk
Pricing
People / HR
Energy / ESG
shipped not yet number = several systems in one cell

Select a cell to see what's in it.

business metrics moved

Grouped by metric family

Anonymised, relative. No client names, no absolute figures.

Revenue
1 system
Operating cost
9 systems
Margin
1 system
Retention
1 system
Cycle time
1 system
Working capital
1 system
about

I sit between the people who have the problem and the systems that solve it.

Someone in operations describes a mess in their own words. My job is to hear the data problem underneath, design the architecture, and lead the build until a number moves.

More about how I work →
now
2026-09-08
  • Writing part 4 of the agents series — the trace chapter, which keeps growing.
  • Rebuilding the fraud case-preparation agent on IEEE-CIS so the anchoring experiment is reproducible.
  • Reading about constrained optimisation for price ladders. The pricing rebuild needs a better solver than the one I shipped.