← Google Interview Insights

Google·Software Engineer·Onsite - System Design / Architecture·Senior

Senior
Jul 2026

Summary

System design round at Google for a software engineer role. One meaty question that sprawled in a lot of directions, felt like I was playing whack-a-mole with follow-ups the whole time.

Questions Asked (1)

Q1

Design a menu update system for a global restaurant chain. Restaurants have many display devices showing menus. Menus share common items but vary by country or region. HQ controls updates, and menus can change daily across breakfast, lunch, and dinner. Cover the data model, how updates get distributed (push vs. pull, CDN usage), versioning, conflict resolution, offline behavior when a restaurant loses connectivity, and observability.

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the data model and probably spent too long there.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then propose a hierarchical data model with inheritance and overrides. Design a hybrid push-pull distribution using CDN and pub/sub, with versioning and conflict resolution. Address offline behavior with local caching and observability with metrics and logging.

Pro tip: Emphasize idempotency and eventual consistency; use version vectors or Lamport timestamps to handle conflicts, and design for graceful degradation when offline.

1. Clarify Requirements and Scale

Ask about number of restaurants, devices, update frequency, and consistency needs. Estimate QPS and storage.

2. Design Data Model

Propose a hierarchical model: global menu items, regional overrides, and restaurant-specific customizations. Use inheritance and versioning.

3. Design Update Distribution

Choose push (pub/sub) for real-time updates and pull (CDN) for scalability. Combine both: push notifications trigger devices to pull from CDN.

4. Handle Versioning and Conflicts

Use version numbers or timestamps. Define conflict resolution: last-write-wins or manual merge for HQ overrides.

5. Address Offline and Observability

Devices cache menus locally and sync when online. Monitor update latency, success rates, and device health.

Key Points to Mention

  • Hierarchical data model with inheritance and overrides
  • Hybrid push-pull distribution using CDN and pub/sub
  • Versioning with Lamport timestamps or version vectors
  • Conflict resolution strategies (LWW, manual merge)
  • Offline caching and sync with exponential backoff
  • Observability: metrics, logging, and alerting for update failures

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.