Design Linkedin Suggest connections feature.
MediumLet's refine the LinkedIn connection suggestion feature. Instead of a naive "mutual friends" approach, we want to build a system that provides more intelligent and relevant connection suggestions to users. This means taking into account factors like:
- Profile Similarity: How similar are the job titles, skills, education, and location of two users?
- Network Proximity: How many "degrees of separation" are there between two users? Are they directly connected, connected through a mutual connection, or further apart?
- Shared Group Memberships: Are two users members of the same LinkedIn groups? This indicates shared interests.
- Common Company: Did the users work at the same company at any point in time?
The system should be designed to be extensible, allowing us to easily incorporate new factors in the future. It should also handle a large number of users and connections efficiently. Since connection suggestions are not critical real-time operations, we can allow for eventual consistency.
Requirements
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.