← Back to QuestionsView Senior Solution
ExpertSearch & IndexingGoogleMicrosoftAmazon
Design Google Search
Design a web search engine with crawling, indexing, ranking, and serving components to handle billions of queries per day.
⏱️ Expected Duration: 60 minutes
Key Topics to Cover
Web CrawlingInverted IndexPageRankQuery ProcessingSpell Correction
💡 Senior Engineer Focus Areas
- ▸Freshness vs completeness trade-off
- ▸Personalization
- ▸Spam detection
- ▸Query understanding
Recommended Approach
1. Requirements Clarification
- • Functional requirements: Core features users need
- • Non-functional requirements: Scale, latency, availability, consistency
- • Out of scope: What we won't design today
- • Constraints: Budget, timeline, existing systems
2. Capacity Estimation
- • Daily/Monthly Active Users
- • Read/Write ratio estimation
- • Storage requirements calculation
- • Bandwidth estimation
- • Peak load considerations
3. High-Level Design
- • Main components and their responsibilities
- • Data flow for primary use cases
- • API endpoints and contracts
- • Database schema overview
4. Detailed Component Design
- • Deep dive into critical components
- • Database design and scaling strategy
- • Caching layer architecture
- • Message queue implementation
5. Bottlenecks & Trade-offs
- • Identify single points of failure
- • Discuss CAP theorem trade-offs
- • Scaling challenges and solutions
- • Cost optimization opportunities
Clarifying Questions to Ask
Functional
- • What are the core features we must support?
- • What user actions are most critical?
- • Are there any features we should exclude?
Non-Functional
- • Expected number of users/scale?
- • Latency requirements?
- • Availability vs consistency preference?
- • Any geographic distribution needs?
Related Questions
Senior Insight
Judgment > Diagrams
Candidates often fail by treating system design as "draw a diagram" instead of demonstrating judgment, trade-offs, and real-world reasoning.
How to avoid this
"Explain WHY you chose a specific database or strategy over alternatives."