Case Study · Platform
Skill bundles: turning one client's requirement into a platform capability
European CCaaS vendor · contact-center platform, 20+ countries
To configure call routing, administrators had to create and assign
up to 900 individual skills per entity. That is hours of setup, and it made
reconfiguration under pressure effectively impossible, which is exactly when routing matters most.
The requirement surfaced during a large competitive bid. The obvious build was a client-specific
implementation: it would have satisfied the requirement and closed the deal.
I built a reusable abstraction instead: skill bundles, added to the product core
rather than to one account's scope. Configuration drops from hundreds of items to a handful, and a
crisis cell can be stood up in minutes rather than hours.
The capability anchored the bid, then redeployed to other accounts with no rework.
15,000+ agents in scope.
The principle: a requirement from one account is usually a signal about the segment.
Build for the segment.
Case Study · Tooling
Landing page module: making the 80th launch cost less than the first
Cox Automotive Europe · automotive marketplace, French market entry
Opening the French market meant 80+ web launches. Every page was built by hand,
from scratch. The eightieth was going to cost what the first had cost, and nothing produced along
the way would be worth anything the second time.
The obvious path was to keep producing pages one at a time, or to build a template per brand.
I built a landing page creation module instead, designed as a reusable capability
rather than a French template. Launches became repeatable rather than bespoke, and the module was later
duplicated for other brands internationally, without redevelopment.
The principle: when the work repeats, the product is the tool, not the output.
Case Study · Data
Multi-source stock ingestion: a catalogue you can actually trust
Cox Automotive Europe · Product management, 3 products across 2 squads
Vehicle stock arrived from hundreds of dealerships, in heterogeneous formats, with
inconsistent and sometimes contradictory data. Without normalisation there is no reliable catalogue,
and everything downstream inherits the mess: search, pricing, listings, the lot.
The obvious approach was one connector per source, built case by case. That survives four sources.
It does not survive four hundred.
I built an ingestion and normalisation layer instead: new sources plug into a defined
contract rather than getting their own bespoke pipeline. The layer runs across 7 brands,
ingesting stock from hundreds of dealerships and thousands of vehicles. One surface,
not four hundred integrations.
The principle: integrations are not features, they are a surface. Design the surface once.