Today we’re looking at the course Grokking the Advanced System Design Interview, a FAANG interview prep course on Educative.io.
We’re also comparing this course to SystemsExpert, another popular prep tool for system design interviews.
🧠 Did you know? According to Techopedia, system design came about before World War II because engineers were attempting to solve complex problems involving communications.
What is system design?
System design is the process of satisfying specific requirements for a system by defining:
✅ product design
Simply put, it’s systems theory applied to product development.
System design takes a systematic, bottom-up or top-down approach to the design of a system.
There is an overlap with system analysis, system engineering and system architecture.
System design interviews aren’t easy.
Now more than ever, you’re faced with the seemingly impossible:
Interviewers want you to solve challenging problems in record time and without error.
It seems like a daunting task, but the truth is:
It’s not impossible.
With the help of a course and plenty of practice, you can do it.
This post contains affiliate links. We may receive compensation if you buy something. Read our disclosure for more details.
TLDR: Grokking the Advanced System Design Interview
✨ In this FAANG interview prep course on Educative.io, you’ll learn core system design skills that will likely help you in your professional career.
💥 This is a follow up to their smash course Grokking the System Design Interview.
🌟 You’ll learn about 20 system design patterns commonly found at FAANG interviews.
🤩 These patterns cater to common design problems related to distributed systems such as:
📌 messaging systems
📌 locking services
📌 file storage systems
➡️ Sign up for Grokking the Advanced System Design Interview ⬅️
Grokking the Advanced System Design Interview: At a Glance
- Advanced system design questions asked at FAANG interviews
- Mock interview questions
- No video explanations
- No workspace
Grokking the Advanced System Design Interview
💰 Cost: $79 per year for the course/$59 per month or $199 per year for all courses and Learning Paths
⏲️ Duration: 5.5 hours
🖥️ Format: Read-Only
💪 Support: Yes
🎖️ Certificate: Yes
System design questions have increasingly become part and parcel of software engineering interviews at FAANGs.
If you’re properly prepared for these FAANG interviews, you can show off your design skills and demonstrate how they work with complex systems.
In this course, you’ll find an architectural review of common distributed systems.
One of the main objectives is to extract crucial design details relevant to the system design interview.
In addition, you’ll find a list of system design patterns for different distributed systems.
Grokking the Advanced System Design Interview: Course Layout
The course is divided into two parts: system design case studies and system design patterns.
Let’s take a closer look.
Grokking the Advanced System Design Interview Part 1: System Design Case Studies
In the first section of this course, you’ll explore the architecture of a set of distributed systems:
|Dynamo: How to Design a Key-Value Store|
|Cassandra: How to Design a Wide-column NoSQL Database|
|Kafka: How to Design a Distributed Messaging System|
|Chubby: How to Design a Distributed Locking Service|
|GFS: How to Design a Distributed File Storage System|
|HDFS: How to Design a Distributed File Storage System|
|BigTable: How to Design a Wide-column Storage System|
Let’s take Dynamo as an example.
Dynamo was developed by Amazon for internal use. It provides a flexible design which allows applications to choose their consistency and availability level.
The goal for this FAANG system design interview problem is to design a distributed key-value store that is:
✅ highly scalable
First you’ll learn about Dynamo’s architecture.
Then you’ll dive into concepts like data partitioning and replication:
Following that, you’ll look at:
✅ put() & get() operations
You’ll follow these lessons with a quiz.
Finally, you’ll find mock interview questions which mimic some questions you may be asked at actual FAANG interviews:
Once you’ve mastered the Dynamo system design problem, you can move onto the next.
Grokking the Advanced System Design Interview Part 2: System Design Patterns
System design patterns are used for common design problems that are related to distributed systems.
It would behoove you to familiarize yourself with these patterns because you can apply them to all types of distributed systems… especially during the FAANG system design interview.
Here are the 20 system design patterns you’ll be looking at:
|Bloom Filters||Consistent Hashing||Quorum|
|Leader and Follower||Write-Ahead Log||Segmented Log|
|Gossip Protocol||Phi Accrual Failure Detection||Split-Brain|
|CAP Theorem||PACELEC Theorem||Hinted Handoff|
|Read Repair||Merkle Trees|
Each system design pattern is broken down into sections.
Let’s take the Consistent Hashing pattern as an example:
First you’ll explore the background of Consistent Hashing and its usage.
Second, you’ll learn the definition of Consistent Hashing.
Third, you’ll find the solution to the pattern.
Fourth, you’ll discover examples of system design case studies that use Consistent Hashing.
You’ll find the same layout for every system design pattern in the course.
What’s next after System Design Case Studies and System Design Patterns?
After Parts 1 and 2 of the course, you’ll find two assessments.
In both assessments, you’ll demonstrate knowledge of different systems you have learned throughout the course.
So is Grokking the Advanced System Design Interview worth it?
Yes, we certainly think so.
You’ll find a well-rounded look into system design case studies alongside some of the most common system design patterns found at FAANG interviews.
But let’s see how it stacks up against another popular system design interview course: SystemsExpert.
Grokking the Advanced System Design Interview vs SystemsExpert
💰 SystemsExpert Cost: $99
⏲️ Duration: Multiple hours (Exact runtime unknown)
🖥️ Format: Interactive learning and video
💪 Support: Yes
🎖️ Certificate: Yes
|Type of learning||Level||Duration||Cost|
|Grokking the Advanced System Design Interview||Read-Only||Advanced||5.5 hours||$79 for course|
|SystemsExpert||Video and Interactive||Advanced||Unknown hours||$99 for course|
SystemsExpert is an interactive course on the AlgoExpert platform created by Clement Mihailescu.
SystemsExpert Course Details
You’ll start by learning the fundamentals of system design.
So unlike Grokking, SystemsExpert may be more useful for less experienced engineers.
It contains 13 system design questions curated for FAANG interviews, compared to Grokking’s 20 questions.
Some of the questions include challenges to design:
✅ Google Drive
✅ The Reddit API
✅ Facebook News Feed
In addition to the instructions, you’ll find clarifying questions and solution walkthroughs.
There are two things SystemsExpert has that Grokking doesn’t have: video explanations and a scratchpad for taking notes:
Learn more about SystemsExpert with our full SystemsExpert review.
Similar to Grokking, you’ll find a system design quiz testing your understanding of technologies and concepts.
In all, I think there are more bells and whistles on SystemsExpert.
But the real meat of system design case studies and system design patterns lies within Grokking the Advanced System Design Interview.
Grokking the Advanced System Design Interview vs SystemsExpert: Conclusion
Today we looked at Grokking the Advanced System Design Interview and SystemsExpert.
But which one reigns supreme?
If you’re looking for an intensive read into what to expect at FAANG interviews, then we think Grokking the Advanced System Design Interview is the way to go.
In addition to learning system design case studies, you’ll find 20 system design patterns.
There are also mock coding interview questions you can use to prepare for FAANG interviews.
However, if you prefer an interactive learning environment coupled with videos, you may enjoy SystemsExpert.
Readers of Grokking the Advanced System Design Interview are also reading:
- 8 System Design Books You Need
- 3 Best System Design Courses
- SystemsExpert vs Grokking the System Design Interview
- 8 Best Design Patterns Books
- AlgoExpert vs LeetCode vs HackerRank