Skip to content

Architecture and engineering

A system is read layer by layer

For technical leaders and teams who want to know how we design a system: the layers we examine, the principles we apply and the practices that come with every delivery.

The layers we design

  1. Identity and access

    Who can do what, and what trail it leaves.

  2. Network and exposure

    What is visible from the Internet, and why.

  3. Applications and APIs

    The code, its contracts, its dependencies, its secrets.

  4. Data and backups

    Where the data lives, and whether restoring it has been tested.

  5. Observability and costs

    What we measure, what we pay for, what raises an alert.

Six architecture principles

Simplicity first

The simplest solution that meets the need; complexity only when it is justified.

Written decisions

Every important choice is documented with its options and trade-offs.

Security by design

Threats, identities and secrets handled from the architecture stage.

Reversibility

Replaceable providers and infrastructure described as code.

Readable costs

Every service has a reason to exist and a tracked cost.

Separate environments

Development, pre-production and production never mix.

What comes with every delivery

Infrastructure as code

The foundation can be rebuilt from a versioned repository.

Continuous integration and delivery

Automated tests, analysis and deployment, with approval before production.

Code and security review

Every change is reviewed before it is merged.

Tests reported as they are

Passed, failed or not run: success is never assumed.

Handover documentation

Architecture, operations and recovery procedures.

Have your architecture reviewed

Azure assessment, target architecture or security review: pick the solution in the catalogue, or describe your need in a quote request.