Case studies
Three projects, start to finish
The problem we walked into, what we did about it, what came out of it and the stack it runs on. Names used with permission.
Nordic Invest
holding company
Integration work inside a carrier grade environment
Building and maintaining service integrations in an environment where a failed message is a customer without service.
The challenge
Carrier platforms are layered. Provisioning, billing, inventory and customer care each hold part of the truth, and they were built in different decades by different teams. Any change has to respect interfaces that thousands of other things already depend on.
What we did
- Documented the real contract of each interface before touching it, including the undocumented behaviour
- Built integrations against explicit schemas with validation at the boundary
- Added correlation IDs so a single customer action could be traced across every hop
- Instrumented flows with metrics and alerts tied to customer impact rather than server health
The result
- Failures surfaced in minutes instead of being discovered through support tickets
- Reprocessing became a routine operation instead of an incident
- New interfaces could be added without renegotiating the whole chain
Stack
- Java
- REST and SOAP
- Kafka
- Oracle Database
- Grafana
Mafra Informática
Delivery and restaurant operations
Connecting delivery and restaurant operations to the systems behind them
Product, stock and order data moving reliably between commercial systems and the operation that has to fulfil them.
The challenge
Retail data is only useful if it is current. Prices change, stock moves, orders arrive faster than a nightly batch can handle, and every system involved had its own idea of what a product identifier looks like.
What we did
- Replaced overnight batches with incremental synchronisation where latency actually mattered
- Built a mapping layer so each system could keep its own identifiers without breaking the others
- Added reconciliation jobs that compare both sides and report differences instead of hiding them
- Put the whole flow behind a dashboard the operations team reads daily
The result
- Stock and pricing differences are caught the same day, not at month end
- Order flow keeps moving when one system is unavailable, then catches up
- The operations team can see the state of every flow without asking a developer
Stack
- Java
- Oracle Database
- REST
- Message queues
- Grafana
Confidential
Logistics
Moving off a system nobody wanted to touch
A core system with no tests, no documentation and no spare weekend to switch it off. Moved forward in slices.
The challenge
The business could not stop, and the original authors were long gone. A rewrite was proposed twice and abandoned twice because the risk was impossible to justify.
What we did
- Wrapped the legacy system in an API facade so new code never talked to it directly
- Added characterisation tests around the behaviour that mattered before changing anything
- Moved one capability at a time behind the facade, with dual writes during each transition
- Kept both systems reconciled continuously until the old path could be retired
The result
- Migration ran without a business freeze or an announced downtime window
- Each slice could be rolled back independently, so risk stayed small
- The team stopped fearing deployments to that part of the estate
Stack
- API facade
- Dual write
- CDC
- Automated tests
- Prometheus
Your project will not look like any of these. That is the reason to talk first.
Talk to us