Design an Experimentation Platform: Assignment, Logging and Statistics for A/B Tests

Quick Overview

A product manager technical question about designing an in-house experimentation platform for running A/B tests on a website and mobile apps. It tests consistent user assignment, exposure logging, metric pipelines, statistical analysis and the safeguards that keep results trustworthy when many teams test at once.

Design an Experimentation Platform: Assignment, Logging and Statistics for A/B Tests

Company: Google

Role: Product Manager

Category: System Design

Difficulty: medium

Interview Round: Other

You are asked to build the in-house system a product organization will use to run controlled experiments, such as A/B tests, on its website and mobile apps. How would you design it? ```hint Follow one user Trace a single user from the moment they open the app to the moment someone reads the test result: where their variant is decided, what is recorded about them, and where they are counted. ``` ### Clarifying Questions - Is this for one team running a few tests, or a company-wide platform where many teams experiment on the same users at the same time? - Must variants be decided on the device (for example in a mobile app that may be offline), on the server, or both? - Is the unit of randomization always a signed-in user, or must the system also handle logged-out visitors, devices or groups such as cities? - Should the platform only report results, or also recommend decisions and stop a test automatically when it harms key metrics? ### What a Strong Answer Covers - The platform's users and an experiment's lifecycle, from setup through ramp-up to a ship decision - Assignment that is random, consistent for each user across sessions, and safe when many experiments overlap - Exposure and event logging, and a metrics pipeline that reliably connects who saw what to what they did - A statistics layer covering sample size and duration, the right tests, and protection against peeking and multiple comparisons - Trust safeguards such as sample ratio checks, guardrail metrics, A/A tests and a kill switch ### Follow-up Questions - The observed traffic split in a test differs noticeably from the configured split. What do you check, and can you trust the result? - How would you test a change where treated users affect control users, such as a marketplace pricing change or a sharing feature? - How would you keep results trustworthy when hundreds of experiments run at once?

Overview: A product manager technical question about designing an in-house experimentation platform for running A/B tests on a website and mobile apps. It tests consistent user assignment, exposure logging, metric pipelines, statistical analysis and the safeguards that keep results trustworthy when many teams test at once.

Google logo
Google
Sep 29, 2024
mediumProduct ManagerOtherSystem Design
0
0

You are asked to build the in-house system a product organization will use to run controlled experiments, such as A/B tests, on its website and mobile apps. How would you design it?

Clarifying Questions Guidance

  • Is this for one team running a few tests, or a company-wide platform where many teams experiment on the same users at the same time?
  • Must variants be decided on the device (for example in a mobile app that may be offline), on the server, or both?
  • Is the unit of randomization always a signed-in user, or must the system also handle logged-out visitors, devices or groups such as cities?
  • Should the platform only report results, or also recommend decisions and stop a test automatically when it harms key metrics?

What a Strong Answer Covers Guidance

  • The platform's users and an experiment's lifecycle, from setup through ramp-up to a ship decision
  • Assignment that is random, consistent for each user across sessions, and safe when many experiments overlap
  • Exposure and event logging, and a metrics pipeline that reliably connects who saw what to what they did
  • A statistics layer covering sample size and duration, the right tests, and protection against peeking and multiple comparisons
  • Trust safeguards such as sample ratio checks, guardrail metrics, A/A tests and a kill switch

Follow-up Questions Guidance

  • The observed traffic split in a test differs noticeably from the configured split. What do you check, and can you trust the result?
  • How would you test a change where treated users affect control users, such as a marketplace pricing change or a sharing feature?
  • How would you keep results trustworthy when hundreds of experiments run at once?