Design Top-K, Crawler, and Chess Systems
Company: Meta
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
During a senior software engineering virtual onsite, you are asked three independent traditional system design prompts. For each prompt, clarify requirements, propose APIs and data models, describe the high-level architecture, and discuss scalability, consistency, and reliability trade-offs.
1. Design a real-time Top-K service that ingests high-volume events and returns the top K items by a metric, such as views or clicks, over selectable time windows.
2. Design a distributed web crawler that starts from seed URLs, discovers pages, avoids duplicates, respects crawl politeness rules, and stores crawled content and metadata.
3. Design an online chess service where two players can play real-time games, legal moves are enforced by the server, clocks are supported, users can reconnect, and game history is stored.
Quick Answer: This prompt evaluates system design competencies including scalable architecture, API and data model design, distributed systems reasoning, real-time processing, crawl and indexing strategies, consistency and reliability trade-offs, and state management for online services.