PracHub
QuestionsPremiumLearningGuidesCheatsheetNEWCoaches
|Home/System Design/Uber

Design a search autocomplete system

Last updated: Mar 29, 2026

Quick Overview

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.

  • hard
  • Uber
  • System Design
  • Software Engineer

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.

Related Interview Questions

  • Design an Uber Eats Cart Service - Uber (medium)
  • Design A URL Shortener - Uber (medium)
  • Design Restaurant Search and Monitoring - Uber (hard)
  • Design Nearby Restaurant Search - Uber
  • Design a Food Delivery Cart - Uber (medium)
Uber logo
Uber
Jul 15, 2025, 12:00 AM
Software Engineer
Onsite
System Design
9
0

System Design: Google-Scale Search Autocomplete

Goal

Design a planet-scale autocomplete service for a search box that suggests completions as users type. Assume hundreds of millions of daily active users, multi-region deployments, and peak QPS in the high hundreds of thousands to millions.

Requirements

  1. Functional
    • Return top-K ranked suggestions for a given prefix as the user types (K ≈ 5–10).
    • Support personalization (when permitted), multi-lingual input, and typo tolerance.
    • Highlight matched prefix; return metadata (type, score, reason codes) for observability.
    • Support admin operations (blocklist, pin/unpin, synonyms) and A/B experiments.
  2. Non-Functional
    • Latency: p50 < 20 ms, p95 < 40 ms, p99 < 60 ms (service time, per region).
    • Throughput: up to 1M+ QPS globally.
    • Availability: 99.99% per region; active-active multi-region.
    • Relevance: high CTR/MRR; guardrails for safety and privacy.
    • Freshness: trending updates visible within minutes; full reindex daily.
  3. External APIs
    • Suggest API (online, low-latency).
    • Events API (impressions, clicks, selections).
    • Admin API (blocklist, pinning, synonyms, feature flags).
  4. Data Model
    • Suggestion terms/entities, language/locale, popularity stats, blocklists, ranking features.
    • Prefix index structure (e.g., weighted FST) plus overlays for deltas.
  5. Architecture
    • Online serving: edge → API → caches → prefix lookup engine → ranker → response.
    • Offline/nearline pipelines: logs → ETL → aggregation → model training → index build → publish snapshots and deltas.
  6. Core Design Topics to Cover
    • Prefix lookup structures (trie, FST, inverted index) and trade-offs.
    • 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.
    • Capacity planning.

Solution

Show

Comments (0)

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Uber•More Software Engineer•Uber Software Engineer•Uber System Design•Software Engineer System Design
PracHub

Master your tech interviews with 7,500+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.