02 / Discipline

Full Stack Development

From the interface down to the infrastructure it runs on.

The screen is the visible face of a stack. Performance, cost and maintainability are decided further down.

  • Frontend
  • API
  • Services
  • Data
  • Infrastructure

Turn the interface side-on and this is what you were using.

Frontend, API, services, data, infrastructure. A request passes through every one of them and comes back, and the slowest or least reliable layer sets the experience regardless of how good the others are.

Treating those layers as separate projects is how systems end up with a fast interface over a database that cannot answer the question being asked. We build the path, not the tiers.

What that means in practice

Six things this discipline actually does.

  • 01

    API design

    Contracts that describe the domain rather than the database, versioned so a client can be upgraded without a coordinated release.

  • 02

    Service architecture

    Boundaries drawn where the business actually changes shape, so a new requirement lands in one service rather than across four.

  • 03

    Data modelling

    Schemas designed for the queries you will run, with the migration path considered before the first table is created.

  • 04

    Integration

    Third-party systems wrapped behind interfaces you control, so their downtime and their breaking changes do not become yours.

  • 05

    Infrastructure and CI

    Reproducible environments, automated deployment, and rollback that has been tested rather than assumed.

  • 06

    Observability

    Logs, traces and metrics chosen so that the first question during an incident has an answer, not a dashboard.

How it runs

Four stages, in this order.

The order is the method. Every stage produces something the next one needs, and skipping one means the stage after it is guessing.

  1. 01Trace

    Follow one real request

    Pick the transaction that matters most and follow it end to end. Every latency and failure mode on that path is a candidate for the work.

  2. 02Model

    Draw the boundaries

    Where the domain changes, where the data lives, what each service owns. Written down before anything is built against it.

  3. 03Build

    Layer by layer, path first

    The full path working thinly beats one layer finished perfectly. Everything else is added to something already carrying traffic.

  4. 04Operate

    Hand over something runnable

    Runbooks, alerts that mean something, and a deployment your team can perform on a Friday without a meeting.

Outcomes

What came out of it.

Sample figures from representative engagements. Not a guarantee, and not an average.

180ms
p95 API responseRepresentative recent workload
99.95%
AvailabilityRolling twelve months
12×
Deploys per weekAfter the pipeline work

Asked often enough to answer here.

Can you work inside our existing architecture?

Yes, and most of the work is. Rewrites are occasionally correct and usually not - we would rather find the two boundaries that are causing the pain.

Do you take on ongoing operation?

We can run a system during stabilisation and hand it over, or stay on retainer. What we will not do is leave you unable to operate your own platform.

How do you approach migrations?

Incrementally, with both paths live and traffic shifted deliberately. A migration with no way back is a launch, and launches are the risky kind.