Skip to main content

Command Palette

Search for a command to run...

Top Facebook System Design Interview Questions (Part 2)

Updated
4 min read
Top Facebook System Design Interview Questions (Part 2)
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! ❤️

Hi Everyone, in our previous HackerNoon post, we discussed five of the most frequent Facebook system design interview questions that we have collected by browsing through multiple websites like LeetCode, Blind, 1point3acre, etc. To recap, we discussed the following:

  1. What are the System Design Interviews at Facebook?
  2. Design Facebook NewsFeed
  3. Design Facebook Status Search
  4. Design Live Commenting at Facebook
  5. Design Facebook Messenger or WhatsApp
  6. Design Instagram

In this post, we are summarizing another five of the frequent Facebook system design interview questions. We hope this post will benefit everyone in their interview preparation.

Design Proximity Server

On Facebook, the proximity servers are used to discover nearby attractions such as places and events, which are then recommended to its users. In this question, develop the backend of the service with the following features:

  1. Users can add, update, and delete places.
  2. Given a location expressed as latitude and longitude, users can query all the nearby places within a given distance.
  3. One optional follow-up to this question is to also query events near a given place around a particular time. This basically adds the third dimension of time to the problem.

Video Explanation. Additional Resource: Educative article on designing the proximity server

Design Typeahead Suggestions

Google predicts and suggests a list of autocomplete queries based on the characters that we have already typed in the search box. These suggestions are called typeahead suggestions, and they help enhance the user experience and better articulate their search queries. Thus, in this question:

  1. Develop a service that suggests the top ten search queries based on the characters already typed by the user in the search box.
  2. For simplicity, assume that the query's popularity can be determined by the frequency of the query being searched in the past.

Video Explanation. Additional Resource: Educative article on designing typeahead suggestions

Design Privacy Settings at Facebook

On Facebook, we can set different privacy levels for the posts we publish to be only visible to a specific set of users like public, friends, friends of friends, etc.

  1. Develop a service that will 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, for this question.
  3. More complex levels like friends of friends and custom groups can be discussed towards the end of the interview if the time remains.

Video Explanation.

Design Top N Songs

This question is very similar to designing the system for Top N Trending topics. In this question:

  1. Develop the backend of the service to get the top N songs for a user over the past X days.
  2. For simplicity, assume that the popularity of a song can be determined by the frequency of the song being listened to in the past.

Video Explanation.

Design Web Crawler

Like many search engines, Google uses a software program named Web Crawler to scan the world wide web. It downloads and indexes all the web pages to be made available for the search queries submitted by the users.

  1. Design the backend of a web crawler. Given a list of seed web pages, it should download all the web pages and index them for future retrieval.
  2. The service should handle duplicate web pages so that unique URLs are stored.

Video Explanation. Additional Resource: Educative article on designing the web crawler

Preparation Material for the above questions

Learn more about the design goals, scale estimations, high-level design overview, and detailed architecture diagram of these problems in this video.

Useful Links

👩‍💻Best System Design Interview Course

💻Grokking the Coding Interview

👩‍🏫Free Behavioral Interview Guide

🤖Best Machine Learning Interview Course

📚Recommended Interview Preparation Book

❤️Support us in creating free high-quality educational content, and avail services like 📝Detailed Resume Review, 🎉Early Access to our content, and 📣Shout-out in our videos. ☕️Buy us a coffee: https://www.buymeacoffee.com/InterviewSage 🔗Patreon: https://www.patreon.com/TheInterviewSage

🖥Our Setup + 📚Interview Prep Books & Courses: https://kit.co/theinterviewsage

Disclosure & Disclaimer

More from this blog

T

The Interview Sage

22 posts

Welcome to The Interview Sage blog. Our goal is to create software engineering interview tutorials that will help you on your journey to get a job at one of your dream companies.