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.
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.
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.
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.
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.
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.
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.
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.
Looking at what breaks first as usage grows, and what it would cost to fix. Usually it's one or two things, not everything.
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.
The output is never just a diagram. A diagram without the reasoning behind it gets misread within a month.
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.
What exists, how it connects, and where the dependencies are. Often this is the first time it's been drawn at all.
Sorted by real consequence: what threatens the business, what merely irritates the team, and what's genuinely fine as it is.
Findings and recommendations with the reasoning attached, so your team can extend the thinking instead of guessing at what I meant.
A walkthrough with whoever needs it. Written documents get skimmed; the questions come out in conversation.
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.
An outside read of your current system, written up and talked through.
Designing how something should be built, either a new project or a rebuild of part of one.
Regular hours for teams who want someone to think this through with.
This work pays off most before you commit. Once something is built, the same questions cost a great deal more to answer.
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.
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.
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.
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