System Design Interview Questions
System Design Interview Questions
From: http://blog.gainlo.co/index.php/category/system-design-interview-questions/
Design a Garbage Collection System (Part I)
Our system design interview series gets a lot of feedback in the past couple of months. I’m glad to know that our readers find it helpful.
One advice I always give is that don’t take these articles as standard answers. System design interview questions are usually open-ended and it’s all about analysis and communication. Any point in the discussion can go deeper based on interviewers’ preferences.
This week, the question is slightly different as it’s a little low-level but at the same times quite useful – garbage collection system. Not only is garbage collection system widely used in many modern programming languages, the same idea can adapt to other areas as well.
In our previous post, we’ve been talking about the basic concept of garbage collection, which is a system that automatically recycles unused memory in programming languages. What’s cool about garbage collection is quite obvious. It allows developers care less about memory management and write more robust code. On the flip side, it may affect the performance and provide less flexibility when working with memory.
Build a Web Crawler
Let’s talk about this popular system design interview question – How to build a web crawler?Web crawlers are one of the most common used systems nowadays. The most popular example is that Google is using crawlers to collect information from all websites. Besides search engine, news websites need crawlers to aggregate data sources. It seems that whenever you want to aggregate a large amount of information, you may consider using crawlers.
Design a Key-Value Store (Part II)
This is the second post of Design a Key-Value Store series posts. If you haven’t read the first post, please go check it.
In our previous post, we mostly focus on the basic concepts of key-value store, especially the single machine scenario. When it comes to scaling issues, we need to distribute all the data into multiple machines by some rules and a coordinator machine can direct clients to the machine with requested resource.
Design a Key-Value Store (Part I)
Since many people have emailed us saying they want to read more about system design interviews, we’re going to cover more on this topic. I’m quite happy to hear a lot of feedbacks and if you have any suggestions or questions, do tell us by leaving a comment.
This week, I’m going to talk about key-value store. A key-value store is a very power technique that is used in almost every system in the world. It can be as simple as a hash table and at the same time, it can also be a distributed storage system. For instance, the underline system of Cassandra is a key-value storage system and Cassandra is widely used in many companies like Apple, Facebook etc..
Random ID Generator
Let’s continue our system design interview questions discussion. If you are new to this series, you can check our previous posts. Basically, each week we are going to pick several interesting interview questions and provide in-depth analysis.
It’s worth to note that the post is not about giving you something like a standard answer. Instead, we focus more on analyzing the problem and how to come up with reasonable approaches. This is even more true for system design interviews because the question can be extremely open-ended.
This week, we will talk about how to a random ID generator. We will cover a bunch of topics including scaling the ID generator and pros and cons of each approach.
Design a Recommendation System
It starts with a simple question: How to design a recommendation system?
It seems that this question has been asked for multiple times in recent system design interviews. In addition, recommendation system is so important nowadays that almost every company has its own recommendation systems which can be used to provide all sorts of suggestions. So this topic can be quite interesting to discuss.
Design a Cache System
Similar to our previous posts, we would like to select system design interview questions that are popular and practical so that not only can you get ideas about how to analyze problems in an interview, but learn something interesting at the same time.
If you have no idea about system design interviews, I’d recommend you read this tutorial first. In this post, we are addressing the problem – how to design a cache system. Topics covered by this post include:
- LRU cache
- Eviction policy,
- Cache concurrency
- Distributed cache system
How to Design a Trending Algorithm for Twitter
From the very beginning of Twitter, trending topics has become one of the core features of this popular product. From Twitter trends, you can easily get what’s popular now. There’s no wonder that many companies like to ask candidates to design a trending algorithm in system design interviews.
Design Facebook Chat Function
One of the most interesting parts of preparing system design interview is that you can get to know a lot of details about how existing systems are built.
To make the weekly post more helpful, I’d like to cover a wide range of topics. We’ve been talking about stuff like recommendation, ranking a lot in the past few weeks, this time I want to cover something different.
-
Chris Nyles
-
CodingPill











