What changed, measured.
Every story states the situation, the move and the outcome, with a number attached. Where a client cannot be named, the sector is named and the anonymity is marked rather than hidden.
- Apache Kafka
- Spark Structured Streaming
- Delta Lake
- Kubernetes
From a nightly batch to a streaming backbone, without a rewrite
Risk decisions ran on data that was up to twenty-six hours old, because everything downstream waited on a nightly batch that had stopped fitting in the night.
We converted the pipelines incrementally to Spark Structured Streaming over Kafka, ran the streaming and batch paths in parallel, and gated every cutover on an automated equivalence lane that compared the two outputs row by row.
Decisioning data went from twenty-six hours old to under four minutes. Every cutover was made against proven equivalence, and the batch path was retired only once its replacement had matched it for a full cycle.
- vLLM
- Qdrant
- NVIDIA GPU Operator
- Kubernetes
- Ragas
A private inference platform, because the data could not leave
Clinical documents could not be sent to a third-party model, so an entire class of work stayed manual while the organisation watched competitors automate it.
We built a private inference platform on their own accelerated hardware — model serving, a routing layer, per-team quotas and full request observability — with a hybrid retrieval layer over the clinical corpus and an evaluation set built from real questions.
Document triage that took a specialist forty minutes now takes four, with every answer citing its sources. No clinical text left the estate, and the platform's cost per document is measured rather than estimated.
- Kubernetes
- Argo CD
- Cilium
- Kyverno
- Prometheus
Nine teams, nine platforms, one contract
Nine product teams each ran their own Kubernetes setup, each with its own ingress, secrets and monitoring, and a cluster upgrade had been postponed for two years because nobody knew what would break.
We built one platform foundation with the layer decided and declarative — ingress, storage, certificates, secrets, policy admission and observability — wrote the platform contract stating what it guarantees, and migrated the teams onto it one at a time.
Nine bespoke setups became one platform with a written contract. Cluster upgrades became routine, and a new service now reaches production on its first day rather than in its first month.
- Whisper
- Groq
- XTTS
- LiveKit
The phone line that qualifies its own calls
Inbound enquiries arrived on a phone menu, and the ones worth having were lost between options three and four.
We deployed a voice agent — speech recognition, a reasoning layer on low-latency inference, and a brand-owned synthesised voice — that answers, qualifies, books, and hands a written brief plus the full context to a partner when a person is needed.
Every call is now answered, transcribed and filed. Qualified enquiries reaching a partner rose by roughly a third, and the partner opens a written brief rather than a callback note.
Your situation is probably in there somewhere.
If it is not, that is worth a conversation too — the interesting engagements rarely look like the last one.
Start a conversation