Skip to main content

Classic design · Mid

Game recommendation

Classic interview design. Key points: collaborative filtering and implicit feedback.

14 min read · Content reviewed on October 23, 2026

Short answer

Classic interview design. Key points: collaborative filtering and implicit feedback. The interview script starts from a catalog of games and users with an interaction history, in the context of ML systems design. The suggested business goal is to increase engagement (playing, liking, clicking, sharing) and, perhaps, purchases, with personalized recommendation for each user.

01 · CONTEXT AND GOAL

What it means to recommend a game

The interview script starts from a catalog of games and users with an interaction history, in the context of ML systems design. The suggested business goal is to increase engagement (playing, liking, clicking, sharing) and, perhaps, purchases, with personalized recommendation for each user. Framed as an ML problem, the input is the user and the output is a ranked list of games with a relevance score.

For sizing, the script assumes 100 million games and 100 million daily active users, and suggests a latency of 200 ms.

Objective to maximizeWhat the script points out
Number of clicksFavors clickbait
Games, sessions, or levels completedBias toward shorter games
Relevant items (proxy via implicit and explicit reactions)More control over the signals, without these problems

The script asks for relevance to be defined explicitly: for example, a like already counts as relevant, or playing half the game.

02 · DATA AND IMPLICIT FEEDBACK

What the model learns from

The data comes from the user profile, game metadata, and user-game interactions (data pipelines). Historical interactions include playing, purchasing, liking, and searching, and the script also lists the impression as an interaction type.

Explicit feedback is what the user declares, such as a survey; implicit feedback comes from the behavior log. The script labels a user-game pair as positive when the user explicitly liked it or interacted for at least a minimum amount of time, for example half the game, and samples negatives from the background distribution.

In representing the inputs, categorical ids such as game, user, language, and city become embeddings learned during training, and title and description can use embeddings from a pretrained language model.

03 · THE FUNNEL

Three stages to fit the latency

AbordagemVantagemLimite
Collaborative filteringDoes not require domain knowledgeUser and item cold start
Content-basedRecommends new items, with no item cold startNew-user cold start; requires domain knowledge

The script's choice is a sequential hybrid, organized as a three-stage funnel (candidate generation, ranking, and re-ranking) to meet latency requirements. Collaborative filtering goes into candidate generation and content-based into ranking.

  1. The player's app asks the recommendation service for the list for the user.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidates
    CPPopular candidates
    CPTrending candidates
    DBEmbedding index
    CPRanker
    CPRe-ranking
  2. The service triggers the candidate generation modules: one by relevance (collaborative filtering), one by popularity, and one by trending.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidatesrelevance
    CPPopular candidatespopularidade
    CPTrending candidatestrending
    DBEmbedding index
    CPRanker
    CPRe-ranking
  3. At this stage a lightweight model reduces a catalog of millions to thousands of candidates.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidates
    CPPopular candidates
    CPTrending candidates
    DBEmbedding index
    CPRanker
    CPRe-ranking
  4. The collaborative module looks up the games closest to the user in the embedding index, an approximate nearest-neighbor problem.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidates
    CPPopular candidates
    CPTrending candidates
    DBEmbedding indexnearest neighbors
    CPRanker
    CPRe-ranking
  5. The ranker, with a more powerful model, focuses on precision and runs only on the subset of candidates.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidates
    CPPopular candidates
    CPTrending candidates
    DBEmbedding index
    CPRankerprecision
    CPRe-ranking
  6. Re-ranking applies business criteria, such as filters and promotion, and the final list goes back to the app.

    Architecture diagram: Game recommendation: three-stage funnel
    CLPlayer app
    CPRecommendation service
    CPCollaborative candidates
    CPPopular candidates
    CPTrending candidates
    DBEmbedding index
    CPRanker
    CPRe-rankingfiltros

04 · CANDIDATES AND RANKING

Two towers to generate, attributes to sort

CriterionMatrix factorizationTwo-tower network
VantagemFast training and serving (static embeddings)Accepts user attributes and handles new users
LimiteUses only user-item interactions; new-user cold startExpensive training

The script chooses the two-tower network: one tower encodes the user, another encodes the game, and the similarity between the two vectors is the relevance score. Training minimizes the cross-entropy over each positive example and over sampled negatives.

In ranking, the script prioritizes precision over efficiency and uses a model based on item attributes, with options such as a feed-forward network with logistic regression or a Deep Cross Network.

  1. The app logs the player's interactions (playing, purchasing, liking, searching) to an event queue.

    Architecture diagram: Game recommendation: from log to model
    CLPlayer app
    QEvent queue
    CPRotulagem
    DBTraining dataset
    CPTwo-tower training
    DBEmbedding index
    CPRecommendation service
  2. A labeling process builds user-game pairs, marks positives and samples negatives, and writes the dataset.

    Architecture diagram: Game recommendation: from log to model
    CLPlayer app
    QEvent queue
    CPRotulagemrotula
    DBTraining datasetexemplos
    CPTwo-tower training
    DBEmbedding index
    CPRecommendation service
  3. Two-tower training reads the dataset and minimizes the cross-entropy.

    Architecture diagram: Game recommendation: from log to model
    CLPlayer app
    QEvent queue
    CPRotulagem
    DBTraining dataset
    CPTwo-tower trainingtwo towers
    DBEmbedding index
    CPRecommendation service
  4. In the diagram, training publishes the generated embeddings to the index that the recommendation service queries.

    Architecture diagram: Game recommendation: from log to model
    CLPlayer app
    QEvent queue
    CPRotulagem
    DBTraining dataset
    CPTwo-tower training
    DBEmbedding indexembeddings
    CPRecommendation service
  5. The script asks that the model be fine-tunable with new data; in the diagram, it is the training reading the updated dataset again.

    Architecture diagram: Game recommendation: from log to model
    CLPlayer app
    QEvent queue
    CPRotulagem
    DBTraining dataset
    CPTwo-tower trainingafinar
    DBEmbedding index
    CPRecommendation service

05 · COLD START AND BIASES

What breaks first

For new users, the two-tower network still accepts the user profile, so there is something to encode even without interactions. For new games, the script suggests recommending them to random users, collecting data, and fine-tuning the model with it.

Among the extensions, the script lists the exploration-exploitation dilemma, tied to the multi-armed bandit, and position bias and selection bias, both with detection and correction.

06 · METRICS AND DELIVERY

How to know whether it worked

TipoMetrics cited
OfflinePrecision@k, mAP, and diversity
OnlineCTR, completed games, purchases, total play time, total spend, and user feedback

In re-ranking, the script applies additional business criteria, such as age filter, region filter, new-content promotion, and deduplication.

Frequently asked questions

What is Game recommendation?

Classic interview design. Key points: collaborative filtering and implicit feedback.

What does the Game recommendation design cover?

It is organized in these sections: What it means to recommend a game, What the model learns from, Three stages to fit the latency, Two towers to generate, attributes to sort, What breaks first, and How to know whether it worked.

How long is Game recommendation and what level is it?

It takes about 14 minutes to read and is rated Mid level.

Now design it yourself

Run this case as an interview in the System Design school: you make the decisions, the tutor challenges them and you see how your design scores.