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.

A critical-infrastructure operator in the energy sector

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.

Microsoft Azure Cloud governance FinOps
A large Dutch bank

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.

Azure Databricks Apache Kafka Apache Airflow
A global retail group

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.

Microsoft Azure Cloud governance Infrastructure as code
A global retail group

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.

Microsoft Intune Windows Autopilot Azure Virtual Desktop
An international IT services provider

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.

ITIL IT service management Service desk operations
A Dutch sun-shading installer

Three percent looks completely normal

A supplier's price list was three percent too high. That is exactly the kind of error nobody catches.

TypeScript Node.js PostgreSQL
A Dutch sun-shading installer

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.

TypeScript Node.js PDF parsing
A Dutch sun-shading installer

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.

TypeScript Node.js Google Workspace API
A Dutch sun-shading installer

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.

TypeScript PostgreSQL Prisma
A Dutch sun-shading installer

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.

TypeScript PDF rendering Vision models
Our own platform

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.

Proxmox Docker Terraform