System design

Decide how it fits together before you build it

My computer science degree and my years writing fullstack code both pushed me the same way: I'm more interested in how a system is shaped than in the syntax of any given language. This is where that's useful.

What I do

Structure, written down

Most small companies have no picture of their own system beyond what's in one or two people's heads. That's fine until someone leaves, or until you need to decide something expensive.

System design for new projects

Deciding what the parts are and how they talk, before anyone writes code. It's much cheaper to move a box on a diagram than to move a database later.

Reviewing an existing system

I read the code and the infrastructure and tell you how it's actually put together, which is not always how people think it is.

Integration planning

How your services and third parties exchange data. Most of the difficulty is in what happens when one side is unavailable, so that's where I focus.

Technology choices

Help picking what to build with, and written reasoning for the choice. Partly so you can revisit it, partly so the next person doesn't undo it by accident.

Documentation

How the system works, why it works that way, and what to be careful with. The thing everyone agrees is important and nobody has time to write.

Where it will strain

Looking at what breaks first as usage grows, and what it would cost to fix. Usually it's one or two things, not everything.

A second opinion

Someone to argue a decision through with when you don't have anyone in-house to argue with. Sometimes the answer is that your plan was fine.

How it works

Read it, map it, write it down

The output is never just a diagram. A diagram without the reasoning behind it gets misread within a month.

  1. 01

    Read the system

    The code, the infrastructure, and the history of what's gone wrong. I also talk to whoever keeps it running, since that's rarely written down.

  2. 02

    Map it

    What exists, how it connects, and where the dependencies are. Often this is the first time it's been drawn at all.

  3. 03

    Find what matters

    Sorted by real consequence: what threatens the business, what merely irritates the team, and what's genuinely fine as it is.

  4. 04

    Write it down

    Findings and recommendations with the reasoning attached, so your team can extend the thinking instead of guessing at what I meant.

  5. 05

    Talk it through

    A walkthrough with whoever needs it. Written documents get skimmed; the questions come out in conversation.

Pricing

Sized to the question you're asking

Some of this is a couple of days' work. Some is a month. Tell me the decision you're facing and I'll tell you which, including if the answer is that you don't need me.

Review

Fixed price

An outside read of your current system, written up and talked through.

  • Code and infrastructure review
  • A map of how it fits together
  • Findings ranked by real impact
  • A walkthrough with your team

Design

Fixed price

Designing how something should be built, either a new project or a rebuild of part of one.

  • Everything in Review
  • Proposed design with the reasoning
  • An implementation plan with clear steps
  • Technology recommendations
  • Documentation you keep

Ongoing

Custom scope

Regular hours for teams who want someone to think this through with.

  • Design review on significant changes
  • Input on technology decisions
  • Documentation kept current
  • Someone to argue a decision through with
Who this is for

Companies at a decision point

This work pays off most before you commit. Once something is built, the same questions cost a great deal more to answer.

Teams about to start something big

A new product, a rebuild, or a move to the cloud. The decisions made in the first two weeks are the ones you live with for years.

Teams with nobody looking at the whole

Good developers, each responsible for their part, and no one whose job is how the parts fit. Easy to end up with seven reasonable decisions that don't agree.

Anyone who inherited a system

You own something you didn't build and nobody can explain. Before you can change it safely, someone has to work out what it does.

Facing a decision worth getting right?

Tell me what you're weighing up and where it hurts today. I'll suggest the smallest piece of work that answers the question.

Book a review