Home› Interview› System Design Interview Questions
🎯 Interview Prep

System Design Interview Questions

System design rounds are the most unpredictable part of senior-level interviews — and the most heavily weighted. This page covers every system design interview resource on TheCodeForge, from fundamentals to real-world design problems.

17 Resources

System design rounds are graded on how you think, not on whether you produce a particular architecture. There is no answer key. What the interviewer is assessing is whether you can take an ambiguous one-line prompt, turn it into requirements, make reasonable choices, and — most importantly — name the trade-offs you are accepting.

The most common failure is not a wrong component. It is starting at the components: naming a database and a queue in the first two minutes, before establishing what the system does or how large it is. A structure fixes this, and the structure itself is part of the signal.

Forty-five minutes, five phases

PhaseTimeWhat to produce
Requirements5 minThree or four functional requirements, and an explicit list of what you are excluding. Ask, do not assume
Scale and constraints5 minUsers, requests per second, read:write ratio, data size per item and total, latency and availability targets
High-level design10 minBoxes and arrows end to end: client, API, storage, async path. The whole system, shallow
Deep dive15 minThe one or two components the interviewer asks about. Data model, partitioning, algorithms
Bottlenecks and trade-offs10 minWhat breaks first under load, what you would monitor, what you gave up and why

That last phase is where senior candidates separate themselves, and it is the one most often skipped because time ran out. Budget for it deliberately — if you are at the 35-minute mark still in the deep dive, stop and move on.

Estimate out loud, round aggressively

Back-of-envelope numbers are not an arithmetic test. They exist so you and the interviewer agree on which architecture is under discussion, because 500 requests per second and 500,000 are different systems.

Round to powers of ten and say the assumptions. A million daily active users at ten requests each is 10⁷ requests a day, a bit over 100 per second average, maybe 500 at peak — comfortably one well-provisioned service with a cache. Ten million photos a day at 500 KB is about 5 TB daily, which immediately rules out keeping media in the primary database and makes object storage plus a CDN the obvious choice.

In practiceTwo numbers carry a lot of weight: the read-to-write ratio, because a 100:1 read-heavy system is a caching and replication problem while a write-heavy one is a partitioning problem — and whether the data must be strongly consistent, because that decision constrains everything downstream.

The trade-offs worth being able to argue either way

DecisionChoose A whenChoose B when
SQL vs NoSQLRelationships, transactions, ad-hoc queries, schema you want enforcedKnown access patterns, extreme scale on one dimension, flexible or sparse documents
Strong vs eventual consistencyMoney, inventory, anything where a stale read is a business errorFeeds, counts, timelines — where availability and latency matter more than being seconds fresh
Sync vs async processingThe caller genuinely needs the result to continueWork is slow, retryable, or spiky — accept, queue, return an id
Cache-aside vs write-throughReads dominate and some staleness is fineWrites must be immediately visible and you accept write latency
Monolith vs microservicesOne team, unclear boundaries, early productIndependent deploy cadence and scaling per component, with the operational maturity to run them

Interviewers frequently push back on whichever you chose. That is usually not disagreement — it is a test of whether you understood the trade or memorised a preference. Defend it on the requirements you established, and be willing to change given a new constraint.

The components you should be able to place without hesitating

Load balancer, CDN, API gateway, application tier, cache, primary database with read replicas, object store, message queue, search index, and a background worker pool. Ten boxes cover the large majority of design questions.

What matters is being able to say why each one is present and what happens when it fails. A cache is not free: it introduces staleness, an invalidation problem, and a thundering-herd risk on expiry. A queue is not free: it makes the system eventually consistent and adds a dead-letter path someone has to own. Naming the cost alongside the component is the whole skill.

Frequently Asked Questions

What if I have never built a system at that scale?
Almost nobody interviewing has. The round tests reasoning, not recollection. Say what you have built, state your assumptions explicitly, and reason from principles. Interviewers are far more tolerant of 'I haven't operated this at that scale, but here is how I would reason about it' than of confident invention.
Should I memorise designs for common problems?
Work through eight to ten — URL shortener, rate limiter, news feed, chat, file storage, ride hailing, notification service, search autocomplete — for the components and trade-offs they teach, not to recite. Interviewers vary the constraints specifically to see whether you adapt.
How much should I draw?
Enough that the interviewer can follow: boxes, arrows, and the direction of data. Label the arrows with what flows. Do not spend time on neatness; spend it on narrating why each box exists. A messy diagram with clear reasoning beats a tidy one you cannot justify.
What is the difference between a mid-level and senior answer?
Mid-level produces a working design. Senior produces a working design plus what breaks first, what they would monitor, how the system degrades under partial failure, what the migration path is, and which requirement they would push back on. The second half is the differentiator.
How do I handle a question about a domain I do not know?
Ask about it. 'I have not worked on video streaming — is the main challenge ingest, transcoding, or delivery?' is a good question and demonstrates exactly the requirement-gathering the round is testing. Guessing silently at an unfamiliar domain is the worse option.

System Design Interview Resources

Core System Design Concepts

Browse all Interview resources

74 interview topics across coding patterns, HR questions, aptitude and more.

View All Interview Topics →