Get the schema right and most of the hard problems disappear.

Almost every expensive bug I have been hired to fix traces back to a data model that was decided quickly and then defended for two years. The schema is the cheapest thing to change on day one and the most expensive on day four hundred.

Why people get in touch

The model does not match the domain

The shape was inferred from the first screen anyone designed. Every feature since has been a workaround, and the workarounds are now the system.

Integrations that disagree

Several sources describing the same thing differently, and no canonical version. Every consumer downstream re-implements the reconciliation slightly differently.

Contracts that drift

The API returns something the client did not expect. Nobody noticed until a user did, because nothing enforced the agreement.

What the work includes

Schema design

Modelled on the domain as it actually behaves, including the awkward cases.

Typed contracts

One definition shared by client and server, so drift becomes a build error.

Third-party integration

Normalised at the boundary, so nothing downstream knows which source it came from.

Migrations

Reversible, tested against production-shaped data, run without downtime.

Documentation

Written for the engineer who joins after I leave.

Typical stack

API

  • tRPC
  • REST
  • GraphQL
  • Zod

Data

  • PostgreSQL
  • Prisma
  • Redis
  • Event streams

Runtime

  • Node
  • TypeScript
  • Background workers

Quality

  • Contract tests
  • Migration testing
  • Observability

How it goes

01

A call, not a pitch

Thirty minutes on what you are actually trying to ship. If I am not the right person, I will say so and usually know who is.

02

A written scope

Before any money moves, you get the outcome, the approach, the price, and what is explicitly out of scope. No hourly surprises.

03

Work in the open

Branches you can read, demos over status reports, and a written update every day. You always know where things stand.

04

A clean handover

Documentation, tests, and a walkthrough with your team. The goal is that you do not need me afterwards.

Questions

Not sure if this is what you need?

Thirty minutes, no pitch. If it turns out you need something else — or someone else — I’ll say so.

Book a call