// work

The systems are the references.

These are examples drawn from our body of work. The problems, architectures and numbers are real, and we'll put them in front of your team on a call.

Client
Cybersecurity platform · ISO 27001 certified
Scope
Ingestion rearchitecture at scale
Duration
6 months, principal-led
Stack
AWS Step Functions Lambda C#/.NET 10

Continuous ingestion from hundreds of integrations

An AI-forward security platform ingested data continuously from hundreds of third-party integrations. The ingestion path had accreted bespoke handling per source — every new integration was a mini-project — and the whole path was struggling to scale.

Approach

We decomposed the ingestion path into a state machine of small, retryable steps: AWS Step Functions orchestrating Lambda workers on C# and .NET 10. Each third-party source became a first-class, versioned contract, so adding an integration meant implementing a contract, not redesigning a pipeline. Agentic AI tooling was introduced with verification gates — productivity in service of rigour, not a replacement for it.

Outcome

Ingestion is continuous and observable end to end. The integration backlog drains instead of accumulating, and new sources land without a project each.

100+
third-party integrations ingested continuously
0
bespoke per-source pipelines after cutover
1
state machine, one verification path
Client
FTSE-listed energy trader
Scope
Modernisation around a third-party ETRM
Duration
12 months, squad lead
Stack
Azure C#/.NET 8 RabbitMQ MSSQL

Extending a trading platform without replatforming

The trading operation ran around a third-party ETRM. New capabilities were being bolted on ad hoc, capacity was hitting a ceiling, and the OAuth2 usage across the estate had never been properly reviewed.

Approach

Rather than replatform, we modernised around the platform: new capabilities and capacity flowed through a RabbitMQ message bus, so the ETRM kept its core job while everything else scaled around it. We analysed and tightened the OAuth2 usage across services — scopes, tokens, client credentials — and modernised the software development lifecycle: CI/CD, automated testing, and a plan the squad could execute against. We owned the squad: planning, organisation and delivery within a much larger team.

Outcome

The platform absorbed new capabilities without a replatform decision. Identity usage was hardened and documented, and releases went from event to routine.

0
replatforms — extended around the ETRM
1
squad owned end to end
100%
of releases through automated CI/CD
Client
Major UK food delivery platform
Scope
Event-driven decoupling & geo-spatial search
Duration
2.5 years
Stack
AWS C#/.NET Core Postgres/PostGIS Vue.js

Decoupling a delivery platform while shipping daily

The platform's verticals were tightly coupled — a failure or a slow query in one could drag the whole platform down — and the search stack carried a licensing bill and an operational burden the team was tired of paying.

Approach

We adopted an eventually consistent, event-based decoupling of the verticals on AWS — SQS and SNS carrying the events, DynamoDB and RDS as the stores. We replaced ElasticSearch with an optimised projection in Postgres/PostGIS for geo-spatial search and delivery, and kept delivery continuous: feature switching, experimentation, automated testing and backwards compatibility as the norm. The transition of the Irish platform to a full geo-spatial search and delivery system was delivered against a hard deadline.

Outcome

Reliability improved as each vertical decoupled; searches got faster and the stack got simpler, saving thousands a year in maintenance and licensing. The work won an engineering department award on the Location Services team.

1
engineering department award
£1,000s
per year saved on search licensing & maintenance
100%
Irish platform on geo-spatial search, on deadline
Client
International publishing group
Scope
SaaS to in-house migration, live
Duration
12 months
Stack
Azure Kubernetes CosmosDB TypeScript/Angular

Replacing a SaaS dependency while it was in use

A third-party SaaS the business had outgrown had to be replaced by an in-house system — without a maintenance window, because the customers didn't have one.

Approach

In-place live data migration: the legacy service kept running while data moved over REST, Azure Service Bus and MassTransit async workers. Hot switching between the old and new paths used feature flags (LaunchDarkly) and branch by abstraction, so every step was reversible. The in-house system ran C# and .NET on Linux in managed Kubernetes in Azure, with a TypeScript/Angular front end and Duende Identity Server for identity.

Outcome

The SaaS dependency was retired with the system running. Because the switch was a flag, not a date, cutover risk stayed small until the very end — where it went away.

0
downtime during data migration
1
feature flag between old and new path
12
months, SaaS to in-house, live

// want the detail?

These four clients will talk to you.

With their permission, we'll arrange reference calls with the engineers who ran these projects. Names, architectures, trade-offs — the full picture, not the brochure version.

Request a reference call

· NDA-friendly