Design a search autocomplete system
Company: Uber
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Onsite
Design a Google-scale search autocomplete service. Define functional and non-functional requirements (latency, throughput, availability, relevance), external APIs, data model, and overall architecture across online serving and offline pipelines. Cover prefix lookup structures (e.g., trie, FST, or inverted index), ranking signals and personalization, typo tolerance and multi-lingual support, freshness and incremental updates, caching strategy, sharding and replication, consistency model, monitoring/SLOs, privacy and abuse/spam mitigation, and capacity planning.
Quick Answer: This question evaluates proficiency in designing planet-scale, low-latency autocomplete services, testing knowledge of distributed systems, prefix indexing and lookup structures, ranking and personalization, caching, sharding, freshness pipelines, and privacy and abuse mitigation.