The Interviewer Just Said “Now Make It Handle 100x More” — Now What?

The Interviewer Just Said “Now Make It Handle 100x More” — Now What?

You have just finished sketching a neat little design on the whiteboard. It works. Everyone is happy. Then the interviewer leans forward and says, “Great — now what if this had to serve a hundred times as many people?” Here is exactly what that question is really asking, and a calm, repeatable way to answer it.

01

The Big Idea, in One Breath

The interviewer’s “now make it 100x” question is not really about a new blueprint. It is about watching you notice, calmly, which part of your design would snap first — and hearing you talk through how you would reinforce it.

Picture a small neighbourhood lemonade stand. One kid squeezes lemons, one kid pours, one kid takes the money. On a quiet Tuesday, that is plenty. Three customers show up, three cups get poured, everybody is happy.

Now imagine a bus pulls up. And then another bus. And then a hundred buses, all at once, all thirsty. Suddenly the stand that worked perfectly on Tuesday completely falls apart. There is one knife for lemons, one pitcher, one cash box, and a line stretching around the block. The kids did not get worse at making lemonade — the plan simply was not built for that much demand.

This is exactly the situation a software architect faces every single day, and it is exactly the situation an interviewer wants to watch you think through out loud. You design something that works for today’s crowd, and then someone asks the scary question: “What happens when a hundred times more people show up?” That single question is one of the most common — and most revealing — moments in a technical interview, and this guide is a friendly, complete walk‑through of how to handle it with confidence.

Everyday Analogy

Think about a school cafeteria built for 300 students. It has one lunch line, one cash register, and one small kitchen. Now imagine the school merges with three other schools overnight, and 30,000 students show up for lunch. You would not just yell at the lunch lady to work faster — you would need more kitchens, more lines, food trucks parked outside, and a completely different way of organizing the whole cafeteria. That is what “scaling to 100x” means for a piece of software.

02

Why Interviewers Love This Trick

The question rarely has anything to do with actually building a hundred‑times‑bigger system. It has everything to do with watching how you think when the ground shifts under you.

It might feel like the interviewer is just trying to trip you up, piling on pressure for no reason. In reality, this move is one of the most useful tools an interviewer has, because it reveals something a “perfect” first answer never could: how you think when the ground shifts under you.

Scale has become the single most consistent thing interviewers check for in these conversations. Teams at large technology companies routinely take a candidate’s design and stretch it to ten times, then a hundred times, then a thousand times the original size, purely to see how the architecture bends, cracks, or holds together under that pressure. One interviewer at a major travel company described exactly what they are hunting for during this moment: not a flawless answer, but a clear view of how a candidate reasons about systems and the many ways they can fail.

Here is the part that surprises a lot of candidates: the question usually has very little to do with actually building a system for a hundred times the users. It has everything to do with watching your process. Do you panic and throw random buzzwords at the whiteboard? Or do you calmly walk back through your design, point at the part most likely to break first, and explain, piece by piece, how you would change it? The second reaction is what gets remembered.

Signal

Structured thinking

Can you break a scary, open‑ended problem into small, ordered steps instead of freezing?

Signal

Trade‑off awareness

Do you understand that every fix costs something — money, complexity, or time — and say so?

Signal

Depth on demand

Can you go deeper on any one part of your answer the moment the interviewer asks “why”?

Signal

Production instinct

Do you think about monitoring and failure without being prompted, the way someone who has actually run a live system would?

i
In Plain Words

When someone says “now scale it to 100x,” they are rarely asking for a finished blueprint. They are asking: “Show me how you would notice the problem, and show me how you would fix it, one honest step at a time.”

Some companies build this test right into how they run their whole interview process. Interviewers at one leading AI research lab reportedly stretch a candidate’s design to ten times, then a hundred times, then even a thousand times the original requirements, specifically to watch how the architecture bends under each new jump, and they use that entire pattern — not any single answer — to decide whether a candidate is ready for a senior role or a more junior one. Another AI company known for building large language models frames its questions around AI‑shaped problems, like designing a queue for batches of work waiting to run on a cluster of specialized processors, but the underlying skill being tested is exactly the same one covered in this guide: recognizing a constrained resource, and reasoning clearly about how to share it fairly as demand grows.

It also helps to remember that this question almost never appears out of nowhere. A thoughtful interviewer builds toward it deliberately — first letting you design something simple and correct, then slowly turning up the pressure to see where your calm, structured thinking either holds steady or starts to wobble. Treating the 100x moment as the “real” test, rather than a random curveball, changes how you experience it: it stops feeling like an ambush and starts feeling like exactly what it is — the main event.

03

What “100x” Actually Means in Numbers

“A hundred times bigger” sounds almost meaningless until you attach real numbers to it — and once you do, the reason “just add a bigger server” stops working becomes obvious.

“100 times bigger” can sound almost meaningless until you attach real numbers to it, so let us do exactly that. Imagine you are designing a simple link‑shortening service — the kind of tool that turns a long, ugly web address into a short one. A reasonable starting estimate might be around 40 new short links created every second, and because people click on old links far more often than they create new ones, the reads might run at roughly a hundred times that rate, somewhere around 4,000 reads every second.

Multiply every one of those numbers by a hundred, and suddenly you are not talking about 4,000 reads a second — you are talking about 400,000. Your one friendly little database, sitting quietly on one machine, is now being asked to answer four hundred thousand questions every single second, on top of storing a hundred times more data than before. That is the moment where “just add a bigger server” stops being a real answer.

1x
A cosy, single‑server hobby project
10x
Where load balancers and caching enter the story
100x
Where the architecture itself has to change

Different industries reach for different reference points, but the pattern is always the same: a small, simple setup (one server, one database) comfortably handles a modest number of users; a medium setup needs several servers, a load balancer to spread the work, and a backup copy of the database in case the main one has trouble; and a large, hundred‑times‑bigger setup needs an entirely different way of thinking, spreading both the traffic and the data itself across many machines working as a team.

04

The Different Flavours of 100x

“100x” is never one single number going up. It can mean four very different kinds of growth, and each pulls your design in a different direction.

Here is something that trips up even strong candidates: “100x” is never just one single number going up. It can mean several very different kinds of growth, and each flavour pulls your design in a slightly different direction. Part of doing well in this moment is noticing, out loud, which flavour (or flavours) you are actually dealing with.

More Users

Wider crowd

A hundred times more people signing up and using the product regularly. This mostly stresses your servers and your login and account systems.

More Requests

Faster clicking

The same number of people, but each one doing a hundred times more per minute — refreshing constantly, or a feature that suddenly gets used far more often.

More Data

Bigger pile

The same number of people, but each one storing or generating a hundred times more information — longer histories, richer files, more detailed records.

Wider Geography

Farther apart

The same overall traffic, but suddenly arriving from every continent instead of one city, which turns network distance itself into a bottleneck.

A viral social post creates a request spike without necessarily changing how much total data exists. A company quietly expanding from one country into forty creates a geography problem without necessarily changing how many total customers there are. A photo app that starts letting people upload video instead of just images creates a data‑size problem that has nothing to do with the number of users at all. Each of these scenarios points you toward a different first move — spotting which one you are facing is half the battle, and asking the interviewer to clarify it is a completely fair, sensible thing to do.

Everyday Analogy

Imagine a library. A hundred times more visitors is one kind of problem — you need more front doors and more librarians at the front desk. A hundred times thicker books is a different problem — you need bigger shelves, even if visitor numbers stay exactly the same. A hundred times more branches spread across the whole country is yet another problem — now you need a delivery van system connecting all of them together. Same “100x,” three completely different fixes.

05

The Mindset Shift: From “Does It Work?” to “Does It Survive?”

A design that “just works” and a design that “keeps working under pressure” are two different achievements. The second one is what real engineering is about.

When you are designing a system for the first time, the natural question in your head is: “Does this do what it is supposed to do?” You draw the boxes, connect the arrows, and if the data flows correctly from one end to the other, you feel done.

Scaling to 100x asks a completely different question: “Does this keep doing what it is supposed to do when everything gets heavier, faster, and more crowded?” It is the difference between building a paper boat that floats in a bathtub and building one that survives a river during a storm. The boat shape might look identical. What changes is whether it can take the strain.

This mental shift matters because a hundred‑times increase rarely breaks a system evenly. Usually, one single part — a database, a slow calculation, a single server handling file uploads — becomes the bottleneck long before everything else does. Your job in the interview is not to redesign every box on the whiteboard. It is to find the one weak link that would snap first, and calmly explain how you would reinforce it.

A design that “just works” and a design that “keeps working under pressure” are two very different achievements — and the second one is what real engineering is about.
06

A Framework You Can Reuse Every Time

Rather than improvising from scratch, carry one repeatable loop in your head. Five moves — clarify, estimate, find, redesign, name the trade‑off — and then go around again.

Rather than improvising from scratch every time this question lands on you, it helps enormously to carry around one repeatable loop in your head. Here it is, boiled down to five moves that you can walk through out loud, calmly, in any interview:

1. Clarify what "100x" means here 2. Estimate the new real numbers 3. Find the weakest part 4. Redesign that one weak part 5. State the trade‑off, repeat loop until nothing new breaks
A five‑move loop you can talk through out loud, every single time the question comes up.

Notice the shape of this loop: it never asks you to solve everything at once. You clarify, you do quick napkin math, you point at the one part that would fail first, you fix just that part, you say out loud what you gave up to fix it, and then you ask yourself: “Okay, now what breaks next?” You keep going around that circle for as long as the interview allows. That is it. That is the whole trick.

07

Step 1 — Get Real Numbers Before You Touch Anything

Resist the urge to jump to solutions. Two questions come first: how much traffic, and how much data. Everything else flows from those two answers.

It is tempting to jump straight into solutions — “I will add caching! I will add a load balancer!” — but a good architect resists that urge and asks for numbers first. Two questions matter more than any others: how much traffic is coming in, and how much data needs to be stored. Everything else follows from those two answers.

A useful habit is to separate reads from writes, because they almost never scale the same way. A photo‑sharing app might get one new photo uploaded for every five hundred times that photo gets viewed. That means your “read” side of the system needs to grow far faster than your “write” side, and any scaling plan that treats reads and writes identically is quietly wasting effort somewhere.

Interview Tip

Keep the maths quick and rough. Round numbers are perfectly fine — the goal of estimating scale is to understand the shape of the problem, not to produce a spreadsheet. Spending more than a minute or two on arithmetic tends to work against you, not for you.

Once you have rough numbers for “before” and “after,” write them side by side. Seeing “4,000 requests per second” turn into “400,000 requests per second” on the whiteboard does something a vague phrase like “way more traffic” never manages to do — it makes the coming pain visible, and it points you straight at Step 2.

08

Step 2 — Find the Weakest Link in the Chain

Every system is really a chain of parts passing work along. A hundred‑times increase in load finds the weakest link almost instantly — and in most designs, it is the database.

Every system, no matter how it is drawn, is really just a chain of parts passing work along to one another: a client sends a request, a server receives it, the server asks a database for information, and the answer travels back. A chain is famously only as strong as its weakest link, and a hundred‑times increase in load will find that weak link almost instantly.

Users One Server One Database 100x load lands here first every request waits on this one box
One server can usually be duplicated. One database, sitting alone, is almost always where the trouble starts.

In most designs, the database is the first thing to feel the strain, for a simple reason: adding a second identical web server is easy, because web servers usually do not remember anything between requests. But a database’s whole job is to remember things — and you cannot just duplicate a box full of memories and expect both copies to agree with each other automatically. That disagreement problem is exactly why database scaling gets its own dedicated step later in this guide.

Other common weak links worth naming out loud in an interview include a single point that every request must pass through (like one login‑checking service), a slow calculation running on every request instead of being pre‑computed, and any place where the system talks to itself over the network more times than it needs to. Naming these possibilities, even briefly, shows the interviewer you are not just thinking about “more servers” — you are thinking about where pain actually accumulates.

09

Step 3 — Scale the Servers That Handle Requests

Two ways to give a server more muscle. Vertical scaling is simple but has a ceiling. Horizontal scaling — more machines with a load balancer — is what actually gets you to 100x.

Once you have spotted the weak link, the most immediate fixes usually live at the “front door” of your system — the servers that receive requests from users. There are two very different ways to give a server more muscle, and the difference between them matters a great deal.

Vertical scaling means giving one machine a bigger engine: more memory, a faster processor, more storage. It is simple — nothing about your code has to change — but it has a hard ceiling. Eventually you run out of bigger machines to buy, and worse, that one giant machine becomes a single point of failure: if it goes down, everything goes down with it.

Horizontal scaling means adding more machines instead of a bigger one, and spreading the work across all of them using a traffic director called a load balancer. This is the approach that actually gets you to 100x, because in principle you can keep adding machines almost indefinitely.

Load Balancer incoming users Server A Server B Server C Server D
The load balancer spreads new requests evenly, so no single server carries the whole crowd alone.

For horizontal scaling to work smoothly, servers usually need to be stateless — meaning any one of them can answer any request, because none of them privately remembers “who you are” between one request and the next. That memory instead lives somewhere shared, like a database or a fast in‑memory cache, so any server in the fleet can pick up any request. This detail is small on a whiteboard, but it is one of the ideas interviewers most love hearing candidates mention unprompted.

Strengths of horizontal scaling

  • No hard ceiling — keep adding machines as demand grows.
  • One server failing does not take down the whole system.
  • Works beautifully with automatic scaling in the cloud.

Trade‑offs

  • Needs a load balancer and careful, stateless design.
  • More moving parts to monitor and coordinate.
  • Costs money even during quiet periods, unless it is elastic.
10

Step 4 — Scale the Database, the Trickiest Part

The database is the recipe book and the ledger — a shared source of truth. You cannot just copy it a hundred times, so scaling it takes three complementary techniques: replication, sharding, and caching.

If servers are like cashiers at the lemonade stand, the database is the recipe book and the ledger — the single source of truth everyone relies on. You cannot simply copy it a hundred times and hope every copy always agrees, because the moment two copies get out of sync, customers start seeing different, contradictory answers. This is why database scaling deserves more care than any other single piece of the puzzle.

Replication: keep several copies, mostly for reading

The gentlest technique is replication. One “primary” copy of the database accepts all the writing (new orders, new sign‑ups, new posts), and several “replica” copies continuously receive updates from the primary and handle nearly all of the reading (people browsing, searching, scrolling). Because reads usually outnumber writes many times over, this single change can absorb an enormous amount of extra load with relatively little added complexity.

Sharding: split the data itself into pieces

Replication helps enormously with reads, but it does not help if the sheer amount of data — or the number of writes — has grown past what one primary machine can hold or process. That is when engineers reach for sharding: splitting the data itself into separate pieces, each living on its own machine, often grouped by something like user ID or geographic region. Instead of one giant filing cabinet, you now have twenty smaller filing cabinets, each responsible for its own slice of the alphabet.

Primary DB handles writes Read Replica 1 Read Replica 2 sharded by user id range Shard A users 0–999k Shard B users 1M–2M Shard C users 2M–3M Shard D… more as needed
Replicas share the reading load. Shards share the storing‑and‑writing load. Big systems usually need both.

Caching: do not even ask the database if you do not have to

The cheapest speed you will ever get is the request you never had to make. A cache is a small, fast, in‑memory storage layer — often built on tools like Redis — sitting in front of the database, holding onto answers to popular questions so the database does not have to compute them fresh every single time. If a thousand people all check the same trending news story in one minute, a cache can answer nine hundred and ninety‑nine of those from memory and only bother the database once.

What these techniques buy you

  • Replication spreads out heavy read traffic across several machines.
  • Sharding lets total data size grow well beyond one machine’s limits.
  • Caching shaves enormous load off the database for popular requests.

What they cost you

  • Replicas can lag slightly behind the primary for a moment.
  • Sharding makes some queries — like “find everyone everywhere” — harder.
  • Caches can go stale, so you must plan how and when they refresh.
!
Worth Saying Out Loud

A well‑known real‑time collaboration platform once ran its entire live data layer on a single database, tailing updates in real time to keep everyone’s screen in sync. As their user base tripled and the number of page views grew roughly five times in a single year, that single‑database approach began to strain, and the team launched a long‑term project explicitly aimed at supporting a hundred times more read and update load — sharding both the database and the cache that sat in front of it as usage kept climbing well past what one machine and one cache could comfortably handle.

11

A Quick Detour: SQL vs NoSQL When You Are Suddenly Huge

Both database families are good at different things. It is not a religious debate — it is a matter of picking the right tool for each specific job, and often using both side by side.

Interviewers often use the 100x moment to ask a related question: would you keep the same kind of database, or switch to a different family entirely? This is worth understanding calmly rather than treating it as a religious debate, because both families are genuinely good at different things.

SQL databases (like PostgreSQL or MySQL) organize information into neat, related tables — think of a well‑run filing cabinet where every folder follows the same rules and nothing is allowed to contradict anything else. They are the natural choice whenever the data is highly structured and the relationships between pieces of it truly matter, such as a bank tracking which account owns which balance, where getting the numbers exactly right, every single time, is non‑negotiable.

NoSQL databases (like MongoDB, Cassandra, or DynamoDB) trade some of that rigid structure for raw horizontal muscle. They were built from the ground up to spread easily across many machines, which makes them a natural fit once a single, cleanly organized SQL database starts to strain under a hundred‑times increase in either data volume or the sheer number of reads and writes flying at it every second.

QuestionLeans SQLLeans NoSQL
Does the data have strict, important relationships?Yes — orders, accounts, inventoryNot really — logs, chat messages, sensor readings
Must every read always see the very latest write?Yes — payments, bookingsOften fine with “eventually” — social feeds, view counts
Is the shape of the data changing often?Harder — schema changes are heavierEasier — flexible, schema‑light by design
Does it need to spread across many machines easily?Possible, but takes more engineeringBuilt in from the start

Plenty of large, hundred‑times‑scale systems do not pick just one — they use both, side by side, choosing whichever tool suits each individual piece of data. An online shop, for example, might keep orders and payments in a strict SQL database where every penny must be accounted for, while storing product‑page view counts or shopping‑cart activity in a looser NoSQL store built for speed over strict correctness. Mentioning this hybrid approach in an interview shows you understand that the choice is not SQL‑versus‑NoSQL in general — it is the right tool for each specific job.

A Helpful Question to Ask Yourself

“If two people read this same piece of data at the exact same moment, does it matter if they briefly see slightly different answers?” If the honest answer is “not really,” you have far more flexibility — and far more scaling options — than you might think.

12

Step 5 — Add Breathing Room With Queues and Async Work

Not every task needs to happen the instant a request arrives. A message queue lets a server write down “please do this later” and move on, keeping fast requests fast.

Not every task needs to happen the instant a request arrives. Sending a confirmation email, resizing an uploaded photo, generating a report — these can all happen a few seconds later without anyone noticing or minding. The trick that makes this possible is a message queue: instead of doing the slow work immediately, the server quickly writes down “please do this later” and moves on to the next request. A separate pool of worker machines picks up those notes whenever it has spare capacity.

Web Server Message Queue “do this later” notes ▭ ▭ ▭ ▭ Worker 1 Worker 2 Worker 3
The server hands off slow work instead of doing it live, so the person waiting gets a fast reply.

This idea, sometimes called event‑driven architecture, is the difference between phoning someone directly and pinning a note to a public board that anyone can check whenever they are free. Producers of work do not need to know or care who eventually handles it, which means new kinds of workers can be added later without touching the original code at all — a huge advantage once a system is being pulled in many directions at hundred‑times scale.

Netflix learned a version of this lesson from the opposite direction. Their internal workflow engine, called Maestro, originally used a design where workers repeatedly polled a database to check “is there anything for me to do yet?” — a pattern that added roughly five seconds of overhead before every single step of a workflow could even begin. By redesigning the engine around a more direct, event‑driven approach that kept state in memory instead of constantly re‑checking a database, the team cut that overhead down to about fifty milliseconds — a hundred‑times improvement that, multiplied across a million daily task executions, saved roughly fifty‑seven days’ worth of accumulated waiting time every single day.

13

Step 6 — Bring Things Closer With Caching and CDNs

Distance costs time. A content delivery network stores copies of unchanging content on edge servers around the world, so most requests never have to reach the far‑away origin at all.

Distance costs time. If a user in one part of the world has to send every request all the way to a server on the other side of the planet, physics alone adds delay, no matter how fast your code is. A content delivery network, or CDN, solves this by storing copies of unchanging content — images, videos, style files — on servers scattered around the world, so a user’s request only has to travel to the nearest copy rather than all the way back to the original source.

Origin Server Edge A Edge B Edge C Edge D Edge E
Most requests never need to reach the far‑away origin server at all — the nearest edge answers instead.

Caching and CDNs together form what many engineers half‑jokingly call “the cheapest scaling money can buy,” because the improvement in speed and the reduction in load on your core servers is often enormous compared to the cost and effort of setting one up. A CDN placed in front of a media‑heavy application can absorb the overwhelming majority of traffic before it ever touches your own infrastructure, leaving your servers and database to worry only about the requests that genuinely need fresh, personalized information.

14

Step 7 — Design for Things Breaking, Not Just for Speed

A hundred times more moving parts means a hundred times more small failures. Experienced architects plan for failure — and think in three stages: design big, build modestly, run just ahead of demand.

Here is a truth that surprises a lot of newer engineers: when a system grows a hundred times bigger, the number of things that go wrong grows too — not because the new design is worse, but because there are simply a hundred times more moving parts that could each have a bad day. A single server crashing when you have one server is a total outage. A single server crashing when you have two hundred servers is a Tuesday.

This is why experienced architects intentionally plan for failure instead of just planning for speed. A well‑known streaming company famously practices something called chaos engineering, where they deliberately switch off pieces of their own live system on purpose, just to make sure the rest of the system calmly picks up the slack instead of collapsing.

How much to build ahead of time

A useful rule that scaling consultants often teach is to think in three separate stages rather than trying to build the “final” hundred‑times system on day one: sketch a rough design that could theoretically handle roughly twenty times today’s load, actually build code that comfortably handles somewhere between three and twenty times today’s load, and only turn on enough live servers to handle about one and a half times today’s load, growing that number just ahead of real demand rather than paying for capacity nobody is using yet.

StagePlan ForWhy
Design~20x today’s loadThinking big on a whiteboard is nearly free.
Build~3x to 20x today’s loadLeaves headroom without wasting engineering time.
Run live~1.5x today’s loadKeeps costs sane; grow the fleet just ahead of demand.

Scaling too early is its own trap, and it is worth mentioning in an interview, because it shows maturity rather than eagerness. Building a hundred‑times‑ready fortress for a product that only has three hundred users wastes money, slows the team down, and studies of failed technology startups have suggested that a striking share of them stumbled not because they grew too slowly, but because they tried to scale before they had truly earned the need to, spending money faster than the business could support.

When does a single application need to be split apart?

A related question that often comes up during the same conversation is whether a hundred‑times jump means the entire application needs to be broken into many small, independently deployed services — the pattern usually called microservices — instead of staying as one larger, unified codebase, often called a monolith. There is a tempting instinct to say “yes, obviously, that is what big companies do,” but that instinct deserves a second thought.

A single, well‑organized monolith is often perfectly capable of handling a hundred‑times increase in load, provided the pieces inside it — the servers running it, the database underneath it — are scaled using everything covered in the last few steps. Splitting into microservices solves a different problem: it helps when many separate teams need to build, test, and release their own pieces of a large system independently, without stepping on each other’s work. If the actual pain point is “our database cannot keep up” rather than “our teams keep blocking each other,” reaching for microservices is solving the wrong problem, and it is worth saying so plainly in an interview rather than defaulting to the trendier answer.

!
A Real Engineering Trade‑Off

Speed and reliability sometimes pull in opposite directions when growth outruns the original plan. In one recent conversation about physical computing infrastructure racing to keep up with a hundred‑times jump in demand, an infrastructure lead described teams intentionally easing some of their strictest reliability targets — accepting slightly less redundancy — specifically to hit ambitious growth timelines, a trade‑off between how bulletproof a system is and how fast it can be delivered. The lesson carries over neatly to software: getting to 100x sometimes means consciously choosing which guarantee you are willing to loosen, and saying so honestly out loud.

15

Cost Is Part of the Design Too

Reliability has a twin constraint sitting right next to it: money. A design that survives a spike but costs a hundred times more to run, every day, whether or not the spike arrives, usually is not a good design at all.

It is easy to talk about scaling as if the only goal is “make it not fall over,” but real companies have a second constraint sitting right next to reliability: money. A design that could theoretically survive a hundred‑times spike but costs a hundred times more to run, every single day, whether or not that spike ever arrives, usually is not a good design at all.

This is exactly why elastic infrastructure matters so much. Reserved capacity — servers that sit there permanently, fully paid for, whether they are busy or idle — makes sense for the steady, predictable core of your traffic. But spiky, unpredictable extra load is often far cheaper to handle with resources that appear only when needed and disappear the moment they are not, such as auto‑scaling groups or serverless functions that are billed by the second they actually run.

Bringing cost into your answer, even briefly, is a quiet but powerful signal. It tells the interviewer you are not just thinking like someone solving a puzzle on a whiteboard — you are thinking like someone who has actually seen a monthly cloud bill and had to explain it to somebody. A sentence as simple as “I would keep the baseline fleet lean and let auto‑scaling absorb the spikes, since paying for peak capacity around the clock would be wasteful,” does a lot of work in very few words.

Elastic, pay‑as‑you‑go capacity

  • You only pay for what you actually use, hour by hour.
  • Handles unpredictable spikes gracefully.
  • Frees engineers from manually provisioning servers.

Fixed, reserved capacity

  • More predictable, often cheaper for steady baseline load.
  • No surprise bill if usage patterns shift suddenly.
  • Does not automatically shrink when things get quiet.
16

Step 8 — Watch It Happen: Observability

Running a hundred‑times‑bigger system without proper monitoring is driving with no speedometer, fuel gauge, or warning lights. Logs, metrics, alerts, and traces are the dashboard.

Imagine driving a car with no speedometer, no fuel gauge, and no warning lights. You might be fine for a while, purely by luck — but you would have no idea you were about to run out of gas until the engine actually stopped. Running a system at a hundred‑times scale without proper monitoring is exactly this, except the “engine stopping” happens in front of real customers.

Observability is the umbrella term for the tools that let a team see inside a running system: logs that record what happened, metrics that track numbers like requests‑per‑second and error rates over time, and traces that follow one single request as it hops between all the different services involved in answering it. Bringing this up without being asked is one of the clearest signals a candidate can give that they have actually operated something real, because interviewers specifically listen for whether a candidate raises the question of how the team would even notice something breaking at three in the morning, and how they would go about debugging it once they knew.

Logs

The diary

A detailed, timestamped record of individual events — useful for reconstructing exactly what happened after something goes wrong.

Metrics

The dashboard

Numbers tracked over time — request counts, error rates, response times — that reveal trends before they become emergencies.

Alerts

The smoke alarm

Automatic notifications that fire the moment a metric crosses a dangerous threshold, so humans do not have to stare at dashboards all day.

Traces

The breadcrumb trail

A map of exactly which services a single request touched, and how long it spent at each stop along the way.

Teams that build real‑time collaboration systems have learned this lesson the hard way: as their databases got sharded and their caches got sharded to handle explosive growth, they found that setting up thorough visibility across the entire stack — the client, the engine, and the database — became essential simply to notice new bottlenecks before customers did, rather than after.

17

A Worked Example: Walking Through the Whole Framework

Let us run the framework end‑to‑end on a simple photo‑sharing app — exactly the way you would narrate it out loud in an interview.

All of this is easier to feel with a concrete example, so let us run one all the way through, exactly the way you might narrate it out loud in an interview. Imagine you have just designed a simple photo‑sharing app. People upload photos, follow their friends, and scroll through a feed of recent posts. Your original design: one web server, one database, one place where uploaded photo files are stored.

The interviewer says: “Nice. Now, what if this had to handle a hundred times more users?” Here is how the eight‑step framework plays out.

  1. Clarify

    You ask: “A hundred times more users, or a hundred times more total traffic? And does that include uploads, or mostly scrolling and viewing?” The interviewer says mostly viewing — people scroll far more than they post.

  2. Estimate

    If today’s app handles 1,000 daily active users posting a total of 500 photos and generating 50,000 feed views a day, a hundred‑times jump means 100,000 users, 50,000 photo uploads, and roughly 5 million feed views a day — around 58 views every second on average, with far higher bursts during peak hours.

  3. Find the weakest link

    The single web server would struggle first, but the real danger is the database, since every single feed‑scroll currently means a fresh, heavy query asking “show me the newest posts from everyone this person follows.”

  4. Fix it, layer by layer

    Add a load balancer and several stateless web servers. Add read replicas so scrolling does not compete with posting. Add a cache that stores each user’s recent feed for a minute or two, since most people refresh far more often than the underlying data actually changes. Move photo files off the web server entirely and into dedicated object storage served through a CDN.

  5. Name the trade‑off

    Caching the feed means a brand‑new post might take a minute or two to appear for some viewers — a small, deliberate sacrifice of instant freshness in exchange for a massive drop in database load.

Notice what did not happen: you did not throw away the original design. The web server is still a web server, the database is still a database — they have simply been given help exactly where the extra load actually lands. That is the entire spirit of scaling a design instead of reinventing it from nothing, and it is precisely the calm, layered thinking that turns a stressful interview moment into one of the strongest parts of the whole conversation.

18

Real Stories From Real Companies

Nothing makes this topic click faster than seeing how real engineering teams lived through their own version of “now make it a hundred times bigger.”

Nothing makes this topic click faster than seeing how real engineering teams actually lived through their own version of “now make it a hundred times bigger.” Here are a few grounded, true examples worth knowing — and worth mentioning in an interview if the conversation allows for it.

Figma’s “LiveGraph 100x” project

Figma’s real‑time collaboration feature — the thing that lets several people edit the same design at once and watch each other’s cursors move live — depends on a system called LiveGraph. As Figma’s number of users roughly tripled and the number of page views grew about five times in a single year, the small team behind LiveGraph launched an initiative with an unmistakable name: “LiveGraph 100x,” a long‑term project aimed squarely at scaling their existing read and update capacity a hundred times over. Their solution combined two of the exact techniques covered earlier in this guide: sharding the underlying database and, separately, sharding the in‑memory cache that sat in front of it, because a single shared cache would otherwise have grown far too large for any one machine to hold as their user base kept climbing.

Netflix’s hundred‑times faster workflow engine

Netflix’s internal tool for scheduling data and machine‑learning jobs, called Maestro, handles hundreds of thousands of workflows and millions of individual job executions every single day. Engineers noticed that a design built around workers repeatedly checking in with a central database was adding several seconds of pure overhead before real work could even begin. By rebuilding the engine’s core around keeping state directly in memory and reacting to events instead of constantly polling, they cut that overhead from about five seconds down to roughly fifty milliseconds, a hundred‑times speed improvement, while also managing to delete nearly forty terabytes of now‑unnecessary database tables and cut internal database traffic by ninety percent along the way.

The “design for scale, do not overbuild” lesson

A technology consulting firm that specializes in exactly this kind of growth planning teaches a simple, memorable habit: sketch your design assuming a huge jump in demand, but only actually build and deploy far more modest amounts of extra capacity, growing the live system just ahead of real need rather than paying for a mountain of idle servers from day one. It is a helpful reminder that “planning for 100x” and “building for 100x today” are two very different, and often confused, ideas.

When speed and reliability pull against each other

Not every hundred‑times story comes from software alone. Engineers designing the physical buildings that house computers have faced their own version of this question as demand for computing power has exploded: one industry leader described planning for what used to be a ten‑times jump in a decade now needing to happen closer to eighteen months, with teams occasionally choosing to accept slightly less redundancy in exchange for hitting an ambitious delivery timeline. Whether the “hardware” in question is a server rack or a database shard, the underlying lesson is identical: hitting a hundred‑times target almost always means making an honest, spoken‑out‑loud trade‑off, not finding a solution with no downsides at all.

Scaling AI workloads is the same problem in a new costume

As more products have started relying on large AI models to answer questions or generate content, teams have run straight into a very familiar‑looking wall: a single request to a large model can be slow and expensive, and a hundred‑times increase in traffic can make a modest AI feature suddenly the most expensive part of an entire product. The fixes engineers reach for should look reassuringly familiar by now — batching many small requests together so a single expensive model run serves several users at once, caching answers to repeated or near‑identical questions instead of recomputing them from scratch, and routing traffic across a pool of model servers the same way a load balancer routes ordinary web traffic. The names of the tools change; the underlying shape of the problem, and the underlying shape of the solution, do not.

100x
Netflix’s workflow‑engine speed gain
3x
Figma’s user growth that triggered LiveGraph 100x
20x
A common “design headroom” multiplier
19

Common Mistakes Candidates Make

A small handful of missteps show up again and again. None are fatal on their own, but noticing them ahead of time makes your answer feel noticeably sharper and calmer.

After watching hundreds of these conversations unfold, a small handful of missteps show up again and again. None of them are fatal on their own — everyone stumbles into at least one of these under time pressure — but noticing them ahead of time will make your answer feel noticeably sharper, calmer, and more like the voice of someone who has actually done this work before, rather than someone reciting a list of scaling buzzwords memorized the night before.

  1. Redesigning everything from scratch

    Throwing away the whole whiteboard and starting over signals panic, not skill. Keep what still works and change only what the new load actually breaks.

  2. Reaching for buzzwords instead of reasons

    Saying “I would add Kafka and Kubernetes” without explaining what problem each one solves sounds impressive for about five seconds, then falls apart under a single follow‑up question.

  3. Ignoring the cost of every fix

    Every scaling technique trades something away — money, complexity, consistency, or simplicity. Naming that trade‑off out loud is often more impressive than the fix itself.

  4. Skipping the numbers entirely

    Jumping straight to solutions without a rough sense of the new scale makes it impossible to judge whether a fix is even necessary yet.

  5. Forgetting that people, not just machines, have to run this

    A design nobody can monitor, debug, or safely deploy at 3 a.m. is not really finished, no matter how elegant it looks on a whiteboard.

  6. Treating every part of the system as equally urgent

    Not everything needs to scale at once. Spending your limited interview time reinforcing a part that was never going to break first is time taken away from the part that actually matters.

None of these missteps come from a lack of knowledge. They almost always come from nerves — the natural urge to prove you know a lot of things quickly, rather than showing that you can reason carefully about a few things that matter. Slowing down, even slightly, tends to fix most of this list on its own.

20

Your Ready‑to‑Use Checklist

Print this mentally before your next interview. When the moment comes and someone says “now scale it to 100x,” run through these in order, out loud, at whatever pace feels natural.

Pause, do not panic.Take a breath. This question is an invitation to think out loud, not a test you can fail instantly.
Confirm what “100x” applies to.Users? Requests per second? Data stored? All three at once? Ask if it is not obvious.
Do quick, rough math.Turn today’s numbers into tomorrow’s numbers. Round generously — accuracy matters less than direction.
Point at the weakest link first.Usually the database, or whichever single component nothing else can bypass.
Fix one part at a time.Servers, then database, then queues, then caching and CDNs — in whatever order the bottleneck actually appears.
Say the trade‑off out loud.“This adds complexity,” or “this costs more,” or “this makes data slightly less fresh” — always name the price.
Mention monitoring, unprompted.How would the team know something broke, and how would they debug it? Bring this up before you are asked.
Loop back and repeat.Ask yourself what breaks next, and keep going until the interviewer is satisfied or time runs out.
21

Quick Glossary

A handful of words have done most of the heavy lifting throughout this guide. Here they are again, gathered in one place, in the plainest terms possible.

Load Balancer

The traffic director

A component that spreads incoming requests evenly across several servers, so no single one gets overwhelmed.

Replica

A living copy

A second copy of a database that stays continuously up to date with the original, mainly used to handle extra reading.

Shard

A slice of the whole

One piece of data that has been split across several machines, each responsible for only its own slice.

Cache

A fast shortcut

A small, quick storage layer that remembers popular answers so the system does not have to work them out again from scratch.

Queue

A to‑do list

A waiting line of tasks that get picked up and handled a little later, instead of forcing a user to wait right now.

CDN

A nearby copy

A network of servers around the world that each hold a copy of unchanging content, so users load it from somewhere close by.

Stateless

No memory of you

Describes a server that does not privately remember anything about you between requests, so any server can help any user.

Observability

Being able to see inside

The combined ability to check logs, metrics, and traces, so a team can notice and understand problems quickly.

22

Key Takeaways

If you remember nothing else from this guide, remember the eight ideas below — and the quiet habit of finding the weakest link, fixing it, and naming what you gave up.

Remember This

  • “Scale it to 100x” is almost never a request for a finished design — it is a request to watch how you think under pressure.
  • Get rough numbers first. A hundred‑times jump means very different things for a chat app than for a video‑streaming service.
  • Look for the weakest link, not a total rebuild. Most systems break at one point long before every part struggles equally.
  • The database is usually the hardest, most important piece — replication, sharding, and caching are your core toolkit.
  • Queues, CDNs, and load balancers buy breathing room by spreading work across time and across geography, not just across machines.
  • Every fix has a price. Naming that price honestly is more convincing than pretending a solution is free.
  • Plan ahead, but do not overbuild today for a scale you have not earned yet — design big, build modestly, deploy just ahead of real demand.
  • A system nobody can observe or debug is not truly finished, no matter how clever its architecture looks on paper.