Katkat

Design a search autocomplete system

UberSoftware Engineer · Onsite

Last updated

This system design question evaluates the ability to architect a large-scale search autocomplete service, testing knowledge of prefix data structures, distributed indexing, and latency-sensitive serving pipelines. It is commonly asked in senior engineering interviews to assess trade-off reasoning between freshness, read performance, and system complexity at scale.

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.