← Google Interview Insights

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

Senior
Apr 2026

Summary

System design round at Google for a software engineering role. The whole session was focused on one big question about building an A/B testing platform from scratch, which sounds scoped until you realize how many moving parts they actually want you to cover.

Questions Asked (1)

Q1

Design an A/B testing platform that handles experiment definition, user randomization, exposure logging, metric computation, and guardrails. Walk through bucketing strategy, unit consistency, incremental rollout, bias avoidance, and how you'd approach statistical analysis and diagnostics.

A/B Testing & ExperimentationSystem DesignProduct Analytics & Metrics
Author's notes

This question is deceptively wide.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and scale, then walk through the end-to-end system architecture covering experiment definition, randomization, exposure logging, and metric computation. Emphasize the importance of unit consistency, deterministic bucketing, and statistical rigor, and discuss how to handle incremental rollout and guardrails.

Pro tip: Highlight the trade-offs between different bucketing strategies (e.g., hash-based vs. deterministic) and explain how you would validate the randomization and detect biases early. Mention the need for a centralized experiment configuration service and real-time monitoring for guardrails.

1. Clarify Requirements and Scale

Ask about expected scale (users, experiments, metrics), latency requirements, and whether the platform is for internal or external use. This shapes design decisions.

2. Design Experiment Definition and Randomization

Define how experiments are configured (e.g., via a UI or API) and how users are assigned to variants using deterministic hashing (e.g., MurmurHash) with a consistent unit (user ID, cookie, etc.).

3. Exposure Logging and Metric Computation

Describe how to log exposures (when a user sees a variant) and compute metrics in near real-time or batch, ensuring data quality and handling late-arriving data.

4. Incremental Rollout and Guardrails

Explain how to gradually ramp up experiments, monitor guardrail metrics (e.g., latency, error rates), and automatically halt if thresholds are breached.

5. Statistical Analysis and Diagnostics

Discuss statistical tests (e.g., t-test, sequential testing), power analysis, and diagnostics like sample ratio mismatch (SRM) and novelty effects.

Key Points to Mention

  • Deterministic bucketing using consistent hashing to ensure stable assignments and avoid bias.
  • Unit consistency: ensure the same unit (e.g., user) is used for randomization, exposure, and metric computation to avoid dilution or contamination.
  • Incremental rollout with automated guardrails and kill switches to mitigate risk.
  • Bias avoidance: check for SRM, use blind analysis, and ensure randomization is truly random.
  • Statistical analysis: choose appropriate tests, account for multiple comparisons, and use sequential testing for early stopping.
  • Scalability: design for high throughput and low latency, possibly using a distributed system with caching.

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