Skip to content
Technology

How we build

Our engineering approach, in the terms that actually determine whether a system survives contact with production.

There is a gap between software that demonstrates well and software that can be operated for years. Most of what we care about lives in that gap: what happens on the second attempt, who can see whose data, and whether anyone can tell what went wrong at three in the morning.

The principles below are not aspirations. They are the things we check for before considering work finished.

01Principles

What we hold ourselves to

Designed for the failure case

We start from what happens when something breaks: a call times out halfway, a job runs twice, a dependency disappears. Systems that only work on the happy path are not finished.

Data isolation enforced in the database

Where separation between customers matters, we enforce it at the data layer rather than trusting every query to be written carefully. A mistake should return nothing, not someone else’s data.

Observable by default

Structured logs, request correlation and meaningful metrics from the start. If you cannot tell what a system is doing, you cannot operate it.

Idempotent operations

Anything that creates a resource or moves money is safe to retry. A retry should never double-charge or duplicate work.

Credentials handled properly

Secrets live in a secret manager, never in code or configuration files, and never in logs. Access is scoped and revocable.

Built to be handed over

Decisions are written down with their reasoning. The people who inherit a system should not have to reverse-engineer why it is the way it is.

Want the detail?

We are happy to talk through how we would approach your specific problem.