
I'm not going to teach you system design. The internet has that covered. This is about the 90 minutes where you have to show how you think.
I went through a few system design interviews recently. Real ones, with real companies, and the thing that decided how each session went was not the number of architecture patterns in my head. It was whether I could show my reasoning, my problem solving, and my ability to collaborate, in a structured way.
That is the whole thesis. The interview is not a quiz. It is a demonstration.
One scope note before we start. You still need the technical foundation. Caching, partitioning, queues, consistency models, all of it. I'm not pretending you can charm your way past a missing fundamentals layer. Section 2 tells you exactly where I'd build that foundation. This article covers the layer most preparation skips: how to show your best self once the foundation exists.

My situation was a refresh, not a cold start. For that, two resources carried the whole preparation: the ByteByteGo guides and the Tech Interview Handbook. I went through them to wake up knowledge that was already there, sleeping under years of day-to-day work.
The first run is the toughest. You are refreshing your memory, pulling concepts back from storage, and that took me around two weeks. Plan for that. Not a weekend. Two weeks of honest effort before the first interview, and every run after that gets cheaper.
If I were starting from scratch instead, I would read a few books, in this order of usefulness for interviews: Cracking the Coding Interview, Grokking Algorithms, System Design Interview by Alex Xu, and Designing Data-Intensive Applications. The first two rebuild your algorithmic base. Alex Xu gives you the interview-shaped view of systems. DDIA gives you the depth that survives follow-up questions.
Read them. Then come back here, because the books will not teach you what comes next.

I prepare behavior before I prepare architecture. That ordering is deliberate.
The target register is firm, clear, and concise. Not arrogant. And here is the part that surprised me: being too friendly reads as insecure. There is a line between warm and eager to please, and the interviewer feels exactly where you stand on it.
The rest of the behavior pillar is simple to say and hard to do under pressure. Smile. Show enthusiasm for the problem. Ask clarifying questions before you touch the whiteboard. Collaborate the whole way through.
The single most useful behavior I practiced is being vocal when stuck. Not performing confidence, just narrating honestly: "I'm not sure here. I'm thinking of going to x, y, or z. What do you think?" That one sentence turns a dead silence into a collaboration. Silence is the thing that kills you in that room, and this is the antidote.
And close it well. End the session with a genuine positive note, something like "this was a good discussion." The last thirty seconds color how the whole 90 minutes gets remembered.

When the problem lands on the table, I walk the same four steps, every time.
Planning comes first. Features, non-functional requirements, tradeoffs, edge cases. This is where you scope the problem out loud and agree with the interviewer on what you are actually building. I share the plan before executing it, and I check for consent before moving forward. The interview is a two-person activity. Moving ahead without alignment is designing alone, and designing alone in that room is a failure mode, not a flex.
Then the high-level architecture. The big boxes and the arrows between them. Keep it honest and keep it moving.
Then zoom in. Pick the parts that carry the risk and go deep there, thinking out loud the entire time.
Then wrap up and review. Walk back through the design, name what you would improve with more time, and land the plane.
One practical tip that nobody mentions: the whiteboard itself matters. If you get to choose the tool, choose Excalidraw. It stays out of your way, it looks clean without effort, and it lets you draw at the speed of the conversation.
If you've sat in one of these rooms, on either side of the table, you already know how much of this is never written down. I publish what I learn from building and interviewing, with real costs and real failures included. Follow along if that's useful to you.

Tradeoffs are where interviewers separate reasoning from recitation. The questions repeat across companies, so prepare your thinking on these three in advance.
Scalability. When the load grows, my toolbox is redundancy, partitioning, and going async. The point is not naming the tools. The point is explaining which one this system needs and why.
Consistency. Strong or eventual. Pick per use case, out loud, with the cost of each choice on the table.
Communication style. Synchronous versus asynchronous, request-response versus event-based. Each one is a commitment with consequences, and the interviewer wants to hear you weigh them.
Across all three, one rule: simplicity over over-engineering. Follow best practices, and resist the urge to decorate the design with technology it does not need. Interviewers report exactly this pattern as a negative signal: candidates who reach for Kafka reflexively, or drop Redis into the diagram without connecting it to a latency problem. A boring design you can defend beats an impressive design you cannot.

I told you what works. Here is what does not, and notice that every item is the inverse of a behavior, not a missing piece of knowledge.
Solo drift. You turn to the board and design alone for ten minutes. The interviewer becomes an audience instead of a collaborator, and you lose the room.
Moving forward without consent. You finish the plan and sprint ahead without checking alignment. Now the interviewer is evaluating a design they never agreed to scope.
Bad tradeoffs. Choices made on autopilot, with no connection to the requirements you collected in planning.
Lack of communication. Going quiet when it gets hard. This is the failure I find most human and most avoidable, because the fix is one honest sentence: I'm not sure, here are my options, what do you think.
The pattern behind all four is the same. Strong engineers fail these interviews while proposing technically reasonable designs, because the session was measuring signals they were not sending.

Two objections deserve their own section, because I would raise them myself.
First: if everyone follows the same structured steps, doesn't structure become the new memorized script. My answer is the opposite. If every candidate used this structure, it would give them a fair and equal chance to demonstrate their reasoning, instead of being blocked by the format itself. The structure is not the performance. It is the level floor that lets your actual thinking become visible. A script tells you what to say. The structure only tells you when you are allowed to say it.
Second: smile, enthusiasm, positive vibes. A skeptic says this rewards charisma and punishes quiet engineers. I see it differently. You are going to collaborate with that team. The session has to show them you are not the lone lion, that you can communicate, and that people will feel comfortable dealing with you. That is not charisma. That is evidence about the day-to-day of working together, gathered the only way an interview can gather it.
Both objections share an assumption, that the technical signal and the human signal compete. In a 90-minute session they are the same signal. The reasoning arrives through the communication or it does not arrive at all.

Here is the honest ending. You will never be fully prepared, because the challenge varies and it is hard to predict.
The interview asks you to think out loud while strangers watch you reason. That is uncomfortable. It stays uncomfortable. Getting comfortable with that discomfort is not a side effect of the preparation, it is the preparation.
I'm still working on that part myself. The pillars hold, the steps hold, and the discomfort shows up anyway, every single time. Maybe that's the real test, and maybe that's fine.