Learn when to start with the big picture and when to start with technical details.
Different problems require different starting points. Here's how to choose:
Top-Down Approach (Start with features) Use when: Given a big, complex problem Examples: "Design Facebook", "Design Uber", "Design Netflix" Process: Features → Components → Technical Details
Bottom-Up Approach (Start with technical details)
Use when: Given a specific, focused problem
Examples: "Design a cache", "Design a ", "Design a load balancer"
Process: Database → Components → System Architecture
Example of Top-Down: "Design Twitter" → Features (Tweet, Follow, Timeline) → Components → Database choices
Example of Bottom-Up: "Design a rate limiter" → Algorithm choice → Data structure → Integration points
The key is recognizing which type of problem you're dealing with and starting at the right level of abstraction.
Key Insight: "The best engineers intuitively know whether to zoom out to see the forest or zoom in to see the trees."
Save