Hi Everyone, in our previous 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:
- What are the System Design Interviews at Facebook?
- Design Facebook NewsFeed
- Design Facebook Status Search
- Design Live Commenting at Facebook
- Design Facebook Messenger or WhatsApp
- 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.
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:
- Users can add, update, and delete places.
- Given a location expressed as latitude and longitude, users can query all the nearby places within a given distance.
- 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.
Additional Resource: Educative article on designing the proximity server
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:
- Develop a service that suggests the top ten search queries based on the characters already typed by the user in the search box.
- For simplicity, assume that the query's popularity can be determined by the frequency of the query being searched in the past.
Additional Resource: Educative article on designing typeahead suggestions
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.
- 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.
- To keep the discussion simple, implement two levels of privacy, Public and Friends, for this question.
- More complex levels like friends of friends and custom groups can be discussed towards the end of the interview if the time remains.
This question is very similar to designing the system for Top N Trending topics. In this question:
- Develop the backend of the service to get the top N songs for a user over the past X days.
- For simplicity, assume that the popularity of a song can be determined by the frequency of the song being listened to in the past.
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.
- 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.
- The service should handle duplicate web pages so that unique URLs are stored.
Learn more about the design goals, scale estimations, high-level design overview, and detailed architecture diagram of these problems in this video.
In case if you have not read our series on Cracking the Facebook Behavioral Interview, we recommend reading it by clicking the below link:
👩💻 Best System Design Interview Course
🚀 Complete SWE Interview Course [💰 Limited Time 10% offer]
🙋♀️ Behavioral Interview Guide [💰 Special Discount]
📚 Recommended Interview Preparation Book (on Amazon)
This article is part of the series on System Design Interviews at Facebook. So, follow us to get notified when our next article in this series is published. Thanks for reading!