What shipped
- End-to-end system integrations across financial services platforms
- Event-driven data movement between systems never designed to talk to each other
- Full-stack delivery, from the services underneath to the interfaces over them
- Engineers sourced, vetted and embedded into an existing delivery organization
The situation
Large financial institutions rarely replace a system outright. They add to it. The result, after enough years, is a set of platforms that each work well alone and were never designed to work together — a core system that thinks in overnight batches, a customer-facing product that expects an answer immediately, and a compliance obligation that assumes both agree.
This work reached those institutions through a global systems integrator, which owned the client relationship and set the delivery standards. Our part was to supply engineers who met those standards and to build the integration work itself.
How we framed the problem
Connecting two systems is straightforward. Keeping them agreeing over time is not.
The recurring failure is treating an integration as a copy — read from one system, write to another, on a schedule. That works until something fails halfway, or arrives twice, or arrives out of order, and the two systems quietly diverge with nobody noticing until a customer complains or an auditor asks.
So the work is framed around events rather than copies. A system publishes what happened, once, as a fact. Interested systems consume it on their own terms and at their own pace. A consumer that falls over can pick up where it left off; a consumer that receives the same event twice handles it without double-counting. In financial services that last property is not a nicety — it is the difference between a reconciled ledger and an incident.
The system we built
Event-driven pipelines moving data between platforms that were built decades apart, using durable streaming and queueing so that no consumer's failure becomes the producer's problem. Backend services to own each integration boundary, and the interfaces over them for the people who operate and monitor the flow — an integration nobody can observe is one nobody can trust.
Alongside the build, we sourced and vetted engineers and embedded them into the integrator's existing teams, working to their standards and their delivery process rather than importing our own.
Stack
Azure, Kafka, Amazon SNS and SQS, .NET.
Where it stands
Ongoing. We continue to place engineers and deliver integration work within these programs.