AlgoMaster Logo

Design LinkedIn

Ashish

Ashish Pratap Singh

hard

LinkedIn is a professional networking platform that allows individuals to create and maintain an online career profile, connect with other professionals, apply for jobs, and share industry-related content.

LinkedIn

It also serves as a recruiting and branding platform for companies to post job openings, build their presence, and hire qualified candidates.

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.

1.1 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.

1.2 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

2. Identifying Core Entities

Premium Content

This content is for premium members only.