PracHub
QuestionsLearningGuidesInterview Prep
|Home/System Design/Google

Match Tagged Problems to Skilled Programmers at Scale

Last updated: Jul 22, 2026

Quick Overview

Model tagged problems and skilled programmers as a bipartite matching problem, then extend the design to distributed and streaming workloads. The exercise probes maximum-cardinality algorithms, efficient edge generation, partition coordination, failure recovery, churn, latency, and fairness trade-offs.

  • medium
  • Google
  • System Design
  • Software Engineer

Match Tagged Problems to Skilled Programmers at Scale

Company: Google

Role: Software Engineer

Category: System Design

Difficulty: medium

Interview Round: Onsite

# Match Tagged Problems to Skilled Programmers at Scale You have `N` problems and `M` programmers. Each problem has a set of required tags, and each programmer has a set of skills. A programmer is eligible for a problem when the two sets have at least one value in common. Each problem and programmer may appear in at most one assignment. ### Clarifying Questions to Ask - Is any eligible assignment acceptable, or must the number of assignments be maximum? - Are tags exact identifiers, and how large can each tag set be? - Does the full data set fit on one machine? - For streaming updates, may previous assignments be changed? ### Part 1: Produce and Maximize a Matching Describe how to produce a valid assignment, then how to maximize the number of assigned problems. State how you construct eligibility efficiently and give time and space complexity in terms of nodes and eligible edges. #### What This Part Should Cover - The bipartite-graph model and validity invariants - The distinction between greedy feasibility and maximum cardinality - An appropriate augmenting-path algorithm and its complexity - Avoiding an unnecessary all-pairs tag comparison ### Part 2: Distribute the Work Suppose the graph is too large for one machine. Design a distributed approach, including partitioning, coordination across partitions, convergence, and how you validate that the result is globally consistent. #### What This Part Should Cover - Candidate-edge generation through an inverted tag index - The correctness cost of cutting a graph across workers - A coordination or reconciliation strategy for contested vertices - Checkpointing, retries, and deterministic ownership ### Part 3: Handle Streaming Changes Problems and programmers now arrive and depart continuously. Explain how you would maintain useful assignments under latency constraints and what optimality guarantee you can realistically offer. #### What This Part Should Cover - Incremental matching and bounded reassignments - Event ordering, deletion handling, and idempotency - A stated trade-off between immediate decisions and global optimality - Metrics for match rate, churn, latency, and fairness ### What a Strong Answer Covers - A source-faithful bipartite model with explicit objectives - Correctness reasoning for both local and distributed state changes - Honest complexity and optimality trade-offs - Practical treatment of skew, hot tags, failures, and observability ### Follow-up Questions - How would weighted preferences change the algorithm? - Can a maximal matching be much smaller than a maximum matching? - How would you keep one common tag from overwhelming a partition? - What fairness policy would you add if some programmers are repeatedly displaced?

Quick Answer: Model tagged problems and skilled programmers as a bipartite matching problem, then extend the design to distributed and streaming workloads. The exercise probes maximum-cardinality algorithms, efficient edge generation, partition coordination, failure recovery, churn, latency, and fairness trade-offs.

Related Interview Questions

  • Design a Task Scheduler for Opaque Long-Running GPU Jobs ("Design Sora") - Google (hard)
  • Design A Drive-Style Usage Quota Limiter - Google (medium)
  • Design a Security Monitoring Framework - Google (medium)
  • Design an Online Coding Judge Platform - Google (medium)
|Home/System Design/Google

Match Tagged Problems to Skilled Programmers at Scale

Google logo
Google
Jun 17, 2026, 12:00 AM
mediumSoftware EngineerOnsiteSystem Design
0
0

Match Tagged Problems to Skilled Programmers at Scale

You have N problems and M programmers. Each problem has a set of required tags, and each programmer has a set of skills. A programmer is eligible for a problem when the two sets have at least one value in common. Each problem and programmer may appear in at most one assignment.

Clarifying Questions to Ask Guidance

  • Is any eligible assignment acceptable, or must the number of assignments be maximum?
  • Are tags exact identifiers, and how large can each tag set be?
  • Does the full data set fit on one machine?
  • For streaming updates, may previous assignments be changed?

Part 1: Produce and Maximize a Matching

Describe how to produce a valid assignment, then how to maximize the number of assigned problems. State how you construct eligibility efficiently and give time and space complexity in terms of nodes and eligible edges.

What This Part Should Cover Guidance

  • The bipartite-graph model and validity invariants
  • The distinction between greedy feasibility and maximum cardinality
  • An appropriate augmenting-path algorithm and its complexity
  • Avoiding an unnecessary all-pairs tag comparison

Part 2: Distribute the Work

Suppose the graph is too large for one machine. Design a distributed approach, including partitioning, coordination across partitions, convergence, and how you validate that the result is globally consistent.

What This Part Should Cover Guidance

  • Candidate-edge generation through an inverted tag index
  • The correctness cost of cutting a graph across workers
  • A coordination or reconciliation strategy for contested vertices
  • Checkpointing, retries, and deterministic ownership

Part 3: Handle Streaming Changes

Problems and programmers now arrive and depart continuously. Explain how you would maintain useful assignments under latency constraints and what optimality guarantee you can realistically offer.

What This Part Should Cover Guidance

  • Incremental matching and bounded reassignments
  • Event ordering, deletion handling, and idempotency
  • A stated trade-off between immediate decisions and global optimality
  • Metrics for match rate, churn, latency, and fairness

What a Strong Answer Covers Guidance

  • A source-faithful bipartite model with explicit objectives
  • Correctness reasoning for both local and distributed state changes
  • Honest complexity and optimality trade-offs
  • Practical treatment of skew, hot tags, failures, and observability

Follow-up Questions Guidance

  • How would weighted preferences change the algorithm?
  • Can a maximal matching be much smaller than a maximum matching?
  • How would you keep one common tag from overwhelming a partition?
  • What fairness policy would you add if some programmers are repeatedly displaced?

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Google•More Software Engineer•Google Software Engineer•Google System Design•Software Engineer System Design

Your design canvas — auto-saved

PracHub

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

Product

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

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • AI Coding 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.