Selected work
Real problems, what was measured, and what changed. Written so you can judge the work rather than the adjectives. Eleven cases across energy, banking, retail, international IT services and our own platform. Five of them come from one sustained engagement with a single client, and one is our own infrastructure. That is deliberate: depth over logos.
Case studies
Enterprise discipline - governance, controls, cost-awareness, security - applied where it is usually missing.
The platform was built. Teams still could not get onto it
A managed cloud platform, finished and waiting, and workload teams queueing to onboard onto it. The constraint was never the technology.
Eleven million transactions a day, and the product was the floor
The users of this platform were not the bank's customers. They were the model developers hunting money laundering, and what they needed was ground that did not move.
Nobody could say which subscriptions were compliant
A global tenant, hundreds of applications moving to Azure, and no single view of whether any of it met the standard.
A global rollout ends. The groups we left behind do not
Every corporate device in a worldwide retail group moved to a new management platform. The part that still mattered two years later was not the migration.
Seven locations, 350 people, two delivery centres, two years
The hardest consolidation problems are not technical. Support work for a whole European region moved into two centres, and every part of it was about people.
Three percent looks completely normal
A supplier's price list was three percent too high. That is exactly the kind of error nobody catches.
We read seven months of quotes and found we were building the wrong thing
The roadmap was built on what was easy to read. Not on what the business actually sells.
408 messages in a week. Thirty-three were actual customers
One shared inbox was absorbing the whole company. Sorting it had quietly become somebody's job.
Before the invoice button went live, we built the thing that stops it
The system was about to start emailing customers. Nothing prevented it from emailing all of them.
The first automated read looked perfect. Every field that mattered was empty
An extraction that returns a complete-looking result with nothing important in it is worse than one that fails.
Twenty-five containers, two nodes, and an AI agent with a key to all of it
Letting an AI operate production infrastructure is either reckless or well-governed. The difference is entirely in the boundaries.