13

System Design & Architecture

The most expensive mistakes in software are made before any code exists: how the data is organised, which parts talk to which, what runs where. System design (software architecture, if you prefer the older term) is deciding those on paper first, where changing your mind costs an afternoon instead of a rebuild. As consulting, it is a short engagement that leaves you with a plan any developer can build from — or the fix for a system that is struggling to scale.

When you need system design

  • You are about to build something with real complexity — multiple user types, payments, integrations, real data — and want it designed before it is coded.
  • An app that worked for 50 users is slowing down, breaking or costing too much with 5,000.
  • An AI tool or a previous developer produced something that works but nobody can extend.
  • You need a second opinion on an architecture, a stack, or a build-versus-buy decision.
  • A developer or agency needs a specification that leaves less to interpretation.

How the system design process works

  1. 01

    Understand the product and its constraints

    What it does, who uses it, how many, what must never fail, what it has to integrate with, and what budget and timeline are real.

  2. 02

    Map the system

    How the data is organised (the data model), which parts of the system exist and what each is responsible for, how they talk to each other, what happens when a user does something, and where it all runs. Diagrams and plain language, not a wall of jargon.

  3. 03

    Decide, with reasons

    Build or buy, which database, which hosting, what to defer. Every decision written down with the reason, so it can be revisited when the facts change.

  4. 04

    A build order any developer can follow

    What to build first, what depends on what, and where the risks are. Then, if you want, I review it as it is built — or build it.

How long it takes

Usually one to two weeks of focused work for a new product, depending on the requirements; a review of an existing system that is creaking is often faster. I’ll give you a real estimate after a first conversation.

Questions about this

What is system design, and do I need it before building?

System design is deciding how an app is put together before it is coded: how the data is organised, which parts exist, how they connect and where they run. You need it when the product has real complexity — several user types, payments, integrations, or plans to grow — because those decisions are cheap on paper and very expensive to change later. A simple app doesn’t need a separate design phase; I’ll say so if that’s your case.

Can you build something from scratch?

Yes — mobile, web and AI-powered products. It's a different engagement from a rescue: we start with what the thing actually needs to do, and I'll usually push to get a small version in front of real users before building the rest. If your idea is better served by something simpler than what you're picturing, I'll say so.

Can you take over an existing codebase?

Yes. I start by understanding the system before changing anything — dependencies, data model, auth, deployment, and the parts that are load-bearing. Then I’ll tell you what I found before I start editing.

Your AI-built app doesn’t need another prompt.

It might need an engineer.

If you’ve spent hours asking AI to fix the same problem and you’re going in circles, stop fighting the code. Send me what you’ve got — I’ll figure out what’s wrong and tell you what I’d do next.

No cleanup. No judgment. The messy version is usually the useful version.

Show me what’s stuck.

Don’t spend another six hours fighting the same bug. Send me the URL, repo, screenshot, error, or just tell me what you’re trying to make work. The messy version is fine.

Both open with a short template already filled in. I’ll take a look and tell you what I need.