# Design a friend recommendation system: system design interview question

> Friend suggestions from permitted graph, profile, and interaction signals, with bounded search cost and strict privacy rules.

Source: https://sysround.com/questions/design-friend-recommendation-system
Updated: 2026-11-05


Difficulty: hard. Levels: Senior, Staff+.

## How the interviewer opens it

"Design a service that suggests people a user may know. The service can use friendships, profiles, and interactions. Explain how it provides useful suggestions and respects privacy."

## What to clarify first

- Users and graph size
- Traffic and read:write mix
- Results and feedback
- Response time and availability
- Relationships and system boundary
- Permitted signals
- Privacy and consistency
- Freshness
- Retention and durability
- Quality

## Scope of a strong answer

Core requirements:

- Find people whom a user may know
- Rank suggestions by their expected usefulness
- Use only permitted signals for candidate discovery and scores
- Exclude friends, blocked accounts, ineligible accounts, and active dismissals

Usually out of scope:

- Implement friend requests and messages
- Import address books
- Build a general model training platform
- Use exact location or private message content

## What interviewers probe

### People to suggest

Graph hubs can dominate the cost of two-hop searches. Sparse accounts need useful evidence from other permitted sources.

### Privacy changes

A suggestion can reveal a private link through its presence or score. Removing the explanation does not remove that influence.

### Recommendation usefulness

Clicks do not prove that two people know each other. Repeated suggestions and biased feedback can reduce useful results.

## Common mistakes

- The design traverses the full two-hop graph during every request.
- The design treats average degree as a safe limit for graph work.
- The design uses private links for discovery or scores, then filters only accounts and explanations.
- The design uses stale recommendation data as the authority for privacy decisions.
- The design excludes blocks in only one direction.
- The design measures clicks without measuring confirmed friendships or dismissals.

## The bar by level

- **Senior:** The candidate separates candidate discovery from request service. The design handles degree skew, sparse users, duplicate events, and stale pools. The candidate defines current permission checks for both account exclusions and signal dependencies. Revoked graph evidence cannot continue to affect candidate presence or scores.
- **Staff+:** The candidate defines consistency contracts across source services and derived data. The candidate quantifies graph work, permission checks, and dependency storage. The design handles aggregate feature revocation, regional failures, and incomplete permission checks. The candidate compares quality gains against computation cost and addresses feedback bias.

Practice this question with an AI interviewer: https://sysround.com/practice/new?problem=friend-recommendations


---
SysRound (https://sysround.com) is an AI practice tool for system design interviews. It has a voice or typed AI interviewer and a shared whiteboard. At the end, you get feedback on each skill and a model answer. The AI feedback can be wrong.
