Skip to content

Part 8: The Interview

You made it through the mountain. Now someone’s asking you to DESIGN a colony. Here’s how.

Step 1: Understand the Colony (2-3 minutes)

Section titled “Step 1: Understand the Colony (2-3 minutes)”

Ask questions. Every interviewer loves this.

  • “How many chinchillas (users)?” -> Scale requirements
  • “What do they do most: stash or retrieve?” -> Read-heavy or write-heavy
  • “How fresh must the seed map be?” -> Consistency requirements
  • “What happens if the colony is down for 5 minutes?” -> Availability SLA
  • “Any regulatory constraints?” -> Compliance, data residency

Start with the simplest design that works:

  • Client -> API -> Server -> Database
  • Name the entities (users, posts, messages, whatever)
  • Define the API (key endpoints, what they accept and return)
  • Choose database type and sketch the schema

Scale it. For each bottleneck, apply the relevant pattern:

  • Too many reads -> Cache, read replicas, CDN
  • Too many writes -> Sharding, async writes, message queue
  • Single point of failure -> Replication, failover, redundancy
  • High latency -> CDN, edge compute, data locality
  • Data integrity concerns -> ACID, distributed transactions, idempotency

What goes wrong?

  • Node failure -> Failover, redundancy
  • Network partition -> CAP choice, consistency model
  • Data corruption -> Validation, checksums, audit logs
  • Traffic spikes -> Auto-scaling, rate limiting, load shedding
  • Security threats -> Auth, encryption, input validation

Walk through the six instincts on your design:

  • Remember: “Here’s how we handle crashes…”
  • Agree: “Here’s our consistency model…”
  • Survive: “Here’s what happens when X fails…”
  • Protect: “Here’s our auth model…”
  • Sustain: “Here’s how we scale to 10x…”
  • Organize: “Here’s why we structured data this way…”

Then ask the interviewer: “Which area would you like me to go deeper on?” This shows maturity. You designed the whole colony and you’re offering to zoom into any burrow.

The interviewer is NOT looking for the “right answer.” There is no right answer.

They’re looking for:

  1. Thinking process: Can you reason about tradeoffs?
  2. Communication: Can you explain your design clearly?
  3. Prioritization: Can you distinguish what matters from what doesn’t?
  4. Depth: Can you go deep on at least one area?
  5. Pragmatism: Do you choose the simplest solution that works, or the most impressive one?

The secret: Talk about TRADEOFFS. Every design decision has a tradeoff. If you say “I’d use X,” follow it with “because Y, even though it means giving up Z.” That single pattern, “chose X because Y, trading off Z”, wins interviews.

ProblemPatternInstinct
Too many readsCaching, read replicas, CDNSustain
Too many writesSharding, async writes, write-back cacheSustain
Slow responsesCache, CDN, edge compute, denormalizationSustain
Single point of failureReplication, failover, redundancySurvive
Cascading failuresCircuit breaker, bulkhead, timeoutSurvive
Data lossReplication, WAL, backupsRemember
Inconsistent dataConsensus, distributed locks, ACIDAgree
Traffic spikesAuto-scaling, rate limiting, load sheddingSustain
Security threatsAuth, encryption, WAF, rate limitingProtect
Complex queriesDatabase indexes, denormalization, CQRSOrganize
Tight couplingMessage queues, event-driven, API gatewayOrganize
Global usersMulti-region, CDN, consistent hashingSustain

Glossary: Chinchilla to Engineer Translation

Section titled “Glossary: Chinchilla to Engineer Translation”
Chinchilla TalkEngineer Talk
The seed stashDatabase
Stashing seedsWriting data
Retrieving seedsReading data
Quick-access stashCache
The colony boardMessage queue
Multiple stashes with copiesReplication
Stashes A-M here, N-Z thereSharding
The seed mapIndex
Backup denFailover
Hurt paw, still walkingGraceful degradation
Bird feeder that shocksBroken downstream service
Stop going to the feederCircuit breaker
Don’t overreact to pebblesDebouncing / hysteresis
Wait for 3 squeaksDwell time / quorum
Only carry 2 per tripRate limiting
Buddy hasn’t squeakedHeartbeat timeout
Canary seedCanary deployment
Tell 3 neighborsGossip protocol
Council of eldersConsensus algorithm
Flag on the seedDistributed lock
Satellite depotsCDN / edge computing
Rush hourTraffic spike / thundering herd
The seed diaryWrite-ahead log
Squeaking vs whisperingAsync vs sync communication
One burrowMonolith
Many burrowsMicroservices
The grapevineEvent-driven architecture
The whole colonyDistributed system

“The chinchilla that understands WHY it stashes seeds will survive any winter. The chinchilla that only knows WHERE to dig will starve the first time the mountain changes.”