← Google Interview Insights

Google·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jun 2026

Summary

Google EM system design round, one question about building a web crawler. Pretty open-ended, which I wasn't fully ready for.

Questions Asked (1)

Q1

Design a web crawler from scratch.

System DesignTechnical Trade-offsAPI & Integrations
Author's notes

I jumped straight into the URL frontier and crawl scheduling before even clarifying scope, which I think hurt me.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then outline a high-level architecture covering crawling, parsing, storage, and scheduling. Dive into key components like URL frontier, politeness, and distributed coordination, discussing trade-offs and scalability.

Pro tip: Emphasize politeness and robustness from the start—Google values systems that respect robots.txt and handle failures gracefully. Also, proactively discuss how you'd measure and monitor crawler health and coverage.

1. Clarify Requirements and Scale

Ask questions to understand scope: expected crawl rate, content types, freshness needs, and politeness constraints. Establish scale assumptions (e.g., billions of pages) to guide design decisions.

2. High-Level Architecture

Sketch main components: URL frontier, fetcher, parser, content store, and link extractor. Explain how they interact and data flows through the system.

3. Deep Dive into Key Components

Detail the URL frontier (prioritization, politeness), fetcher (distributed, rate limiting), parser (extract links, handle formats), and storage (deduplication, indexing). Discuss algorithms and data structures.

4. Address Scalability and Reliability

Explain how to scale horizontally, handle failures (retries, dead letter queues), and ensure fault tolerance. Discuss distributed coordination (e.g., consistent hashing, leader election).

5. Discuss Trade-offs and Optimizations

Compare design choices (e.g., BFS vs. priority crawling, push vs. pull). Mention optimizations like caching, compression, and incremental crawling.

Key Points to Mention

  • Politeness: robots.txt compliance, crawl-delay, per-domain rate limiting
  • URL frontier design: prioritization, freshness, and avoiding cycles
  • Distributed crawling: partitioning, coordination, and avoiding duplicate work
  • Storage and deduplication: content hashing, URL normalization, and efficient indexing
  • Handling dynamic content and JavaScript rendering (if applicable)
  • Monitoring and metrics: crawl rate, coverage, error rates, and freshness

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.