Skip to main content

Command Palette

Search for a command to run...

βœ… Design Privacy Settings At Facebook | System Design Interview (Pirate Round) πŸ”₯

Learn about Key Features, Design Goals, Scale Estimations, REST APIs, High-Level Design, Detailed Architecture Diagram, and Interview Framework

Published
β€’4 min read
βœ… Design Privacy Settings At Facebook | System Design Interview (Pirate Round) πŸ”₯
T

Welcome to The Interview Sage Hashnode page. Thanks for checking us out.

Our goal is to create software engineering interview tutorials that will help you on your journey to get a job at your dream company.

We have spent multiple hours to gather data about the current interview processes at different technology companies like Facebook, Google, Apple, Amazon, LinkedIn, etc. We will deep-dive into various topics and questions related to these interviews.

πŸ‘©β€πŸ’»Our Setup + πŸ“šInterview Prep Books & Courses Recommendations: https://kit.co/theinterviewsage

πŸ”—Our Patreon Link: https://www.patreon.com/TheInterviewSage Kindly join our Patreon Community to show your support and access to additional services: βœ…Detailed Resume Review βœ…Early Access to our content βœ…Shout-Out in our videos

Your generous support means the world to us. It helps in creating free content to provide educational tutorials for Software Engineering interviews. Thanks again for supporting our work! ❀️

User Privacy has been a critical topic currently for most tech companies.

On Facebook, you may have noticed that you can set different privacy levels for the posts you publish so that they are only visible to a specific set of users like Public, Friends, Friends of friends, etc.

Key Features

The privacy implementation design can be fairly complex, so we will limit it to a few core features that can be covered in a 45-minute interview round. In this question, you will be asked to develop the backend of a system with the following key features:

  1. Enable a user to specify the different levels of privacy for a post so that it is only visible to a particular set of users on Facebook.
  2. To keep the discussion simple, implement two levels of privacy, Public and Friends.
  3. More complex levels like Friends of friends and Custom groups can be discussed towards the end of the interview if the time remains.

Privacy Settings At Facebook


Detailed Interview Framework

You can use the following framework to better answer the Design Facebook Privacy Settings question in the interview. It will help you to maintain focus and answer it better.

  1. Key Features
    • As discussed above
  2. Design Goals
    • Minimum Latency
    • High Consistency
    • Partition Tolerance
    • We will tolerate lower availability in the interest of high consistency (CAP Theorem)
    • Read vs. Write Heavy
  3. Scale Estimation
    • Daily Active Users (DAUs)
    • Read QPS
    • Write QPS
    • Data generated each day and over 10 years (Storage Utilization)
    • Approximate number of servers required
  4. REST APIs
    • /setPrivacyLevel (Write API)
    • /canView (Read API)
  5. High-Level Design
    • Discuss different privacy levels & data structure to define them.
    • Explain how the system will determine whether the post can be displayed to a specific user or not.
    • How to build the key-value store to persist the friends data of the users.
  6. Database Design (Data Layer)
    • Schema design
    • SQL vs. No-SQL
    • Sharding
      • Hash-based sharding
      • Consistent Hashing
    • Replication (for Fault Tolerance)
    • Quorum
      • Read + Write Consistency
  7. Application Layer
    • Multiple Stateless Servers with Load Balancer (Round-Robin)
  8. Caching for Fast Retrieval
    • Eviction Policy - LRU
  9. Detailed Architecture Diagram

Optional

If time permits, you can also discuss the following towards the end of the interview:

  1. Complex Privacy Levels
    • Friends of Friends
    • Custom Groups
  2. Security, for example, ACL (Access Control List)

Preparation Material for this question

Learn more about the Key Features, Design Goals, Scale Estimations, REST APIs, High-Level Design, Detailed Architecture Diagram, and Framework to effectively prepare and answer this top question asked in the System Design Interviews at Facebook.

⬇️ Detailed Notes on Design Privacy Settings at Facebook


Cracking the Facebook System Design Interview

If you have not read our first article on Top Facebook System Design Interview Questions, we recommend reading it by clicking the below link:


Cracking the Facebook Behavioral Interview

In case if you have not read our series on Cracking the Facebook Behavioral Interview, we recommend reading it by clicking the below link:


βœ… Educative.io Unlimited Plan [πŸ’° 10% off for first 100 users]

βœ… TryExponent.com Membership [πŸ’° Limited Time 10% offer]


πŸ‘©β€πŸ’» Best System Design Interview Course

πŸš€ Complete SWE Interview Course [πŸ’° Limited Time 10% offer]

πŸ™‹β€β™€οΈ Behavioral Interview Guide [πŸ’° Special Discount]

πŸ“š Recommended Interview Preparation Book (on Amazon)


Buy Me a Coffee β˜•οΈ Buy us a Coffee at BuyMeACoffee.com/InterviewSage

To stay updated about new posts, Subscribe & Follow Us!
Subscribe to our YouTube channel Follow us on Instagram Like & Follow us on Facebook Follow us on Twitter Follow & Connect on LinkedIn

This article is part of the series on Behavioral Interviews at Facebook. So, follow us to get notified when our next article in this series is published. Thanks for reading!

Full Disclosure & Disclaimer

M

Component design in the video is quite helpful.

3
T

Glad you liked the video!