Service
API development
Interfaces between systems that keep working when one side changes.
At a glance
- Typical timeline
- Four weeks for a single integration; three to six months for an integration layer
- Indicative price
- Pending commercial sign-off · see engagement models
- Stack we default to
- Go
- TypeScript
- Node.js
- PostgreSQL
- Kafka
- OpenTelemetry
- Engagement models
- Fixed-scope sprint
- Time and materials
- Outcome-based
The problem this addresses
Integrations are usually built once, under deadline, against whatever the other system happened to return that week. They then break silently, and the failure surfaces as a business problem days later.
What you get
- 01Documented interfaces with published contracts and versioning rules
- 02Contract tests that fail in continuous integration when either side drifts
- 03Observability on every integration point, with alerting on the failure modes that matter
- 04Adapters isolating third-party interfaces you do not control
- 05A written integration map of what talks to what, and what breaks if it stops
How the work runs
- 01
Integration mapping
We map every system boundary, including the undocumented ones, and identify which are under your control and which are not.
- 02
Contract design
Explicit contracts with versioning and deprecation rules agreed before implementation.
- 03
Iterative delivery
Interfaces delivered one at a time, each with tests and monitoring, rather than a big-bang integration layer.
- 04
Failure rehearsal
We break the integrations deliberately in a controlled environment and verify the alerting and degradation behave as designed.
Where this fits
API development is the right label when the value is in the connection rather than the interface a person uses. It frequently runs alongside custom software, where the integration layer is one part of a larger system.
Attribution before optimisation
The most common integration problem we are called into is not "it is slow" but "we cannot tell which part is slow". Tracing goes in first on every engagement, because optimising without attribution is guessing with a budget.
Proof
Work delivered with this service
Zafarin
Closing the daily reconciliation break queue at Zafarin
Zafarin's daily safeguarding reconciliation produced a queue of breaks that finance operations cleared by hand every evening, and the queue grew with transaction volume. We rebuilt the partner feeds, the ledger and the break workbench underneath it.
Mirolens
Removing hand-keyed identifiers from a retinal screening imaging pipeline
Screening sites were typing patient identifiers into camera consoles and sending graded outcomes on as documents. We made capture pull from a worklist and exposed the outcomes over a FHIR API.
Questions
What clients ask before starting
REST, GraphQL, or something else?
Whatever fits the consumers. REST is the safe default for third-party and partner interfaces because it is universally understood. GraphQL earns its complexity when you have many clients with genuinely different data needs. Event-driven interfaces suit high-volume asynchronous flows. The wrong answer is picking one because it is current.
How do you handle third-party systems we do not control?
With an adapter layer, always. A vendor interface that your application code depends on directly means their next change is your next incident. An adapter means it is one file. This is not over-engineering; it is the cheapest insurance in integration work.
What does observability mean in practice here?
Distributed tracing across every hop so a slow or failing integration can be attributed in seconds, plus alerting on the specific failure modes — timeout, partial failure, silent schema change — rather than a generic error rate. Attribution before optimisation is a rule we apply to our own work.
Can you document APIs we already have?
Yes. Reverse-engineering contracts from an existing implementation, then putting contract tests around them, is a common first engagement. It converts undocumented tribal knowledge into something enforceable before anyone changes it.



