Design A Scalable Web Crawler
MicrosoftSoftware Engineer · Technical ScreenLast updated
This question evaluates scalable system architecture and distributed systems competencies, specifically testing web crawler concepts such as URL discovery and deduplication, scheduling and prioritization, politeness-aware fetching, parsing and link extraction, storage of content and metadata, failure handling, and monitoring.
Design a scalable web crawler that discovers, fetches, parses, and stores web pages for downstream use such as search indexing or content analysis.
Your design should cover:
- URL discovery and deduplication.
- Scheduling and prioritization of crawl jobs.
- Fetching pages while respecting robots.txt, rate limits, and per-domain politeness.
- Parsing pages and extracting links.
- Storage for crawled content, metadata, and crawl state.
- Handling failures, retries, duplicate content, and very large scale.
- Monitoring and operational concerns.
Solution walkthrough is for members
Get the full walkthrough with reference code and complexity analysis, plus Kitty Coach at 300 messages a day. Hints, the code runner and community answers stay free.