AlgoMaster Logo

Design LinkedIn

Medium Priorityhard27 min readUpdated June 27, 2026
Practice this Problem

In this chapter, we will explore the low-level design of LinkedIn like system in detail.

Let's start by clarifying the requirements:

1. Clarifying Requirements

Before starting the design, it's important to ask thoughtful questions to uncover hidden assumptions and better define the scope of the system.

Here is an example of how a conversation between the candidate and the interviewer might unfold:

After gathering the details, we can summarize the key system requirements.

Functional Requirements
  • Profile Management: Allow members to create and update their professional profiles
  • Connection Management: Members can send connection requests to other members. Requests can be accepted or rejected.
  • Posting: Members can create text-based posts.
  • News Feed: Members can view a feed of posts made by their connections.
  • Post Interactions: Members can like and comment on posts.
  • Notifications: Members receive notifications for: Connection requests, Likes/Comments on their posts
  • Search: Members can search for other members by name.
Non-Functional Requirements
  • Modularity: The system should be organized into well separated components
  • Extensibility: The design should be extensible to support future features like job postings, or premium accounts
  • Maintainability: Code should follow object-oriented design principles and be easy to test, debug, and extend

With the requirements in place, the next step is to identify the core entities that will form the foundation of our design.

2. Identifying Core Entities

Premium Content

This content is for premium members only.