Educative.io is perhaps the most under-promoted online coding platform at the moment.
Educative landed on my radar is because one of their people invited me to teach a course there. This platform contains quality courses, knowledgeable instructors, and invaluable information.
And courses are regularly taken by my employees for on-the-job training, and I’ve taken many of them myself.
Learn more about Educative here.
Disclosure: I’m an enthusiastic affiliate of Educative.io and may get compensated if you buy something.
Although I ended up not producing a course for Educative, I was intrigued. For one, the course selection seemed not only robust but wonderfully specific. For example, Reintroducing React: V16 and Beyond was created for web developers who dabbled in React a year or two ago, but need a modern refresher.
Ruby Concurrency for Senior Engineering Interviews? You don’t get more specific than that.
Similarly, the Grokking the System Design Interview course on Educative is designed for those who need brushing up on a highly specific skill set: the system design process.
And it was created by hiring managers at Google, Facebook, Microsoft, and Amazon. That means this course contains actual Google system design interview questions.
So if you’re hoping to land a job at one of the FAANGs (Facebook/Amazon/Apple/Netflix/Google), read on.
System Design interviews are arguably some of the most difficult for software engineers. A lot of this you just won’t learn in college or coding bootcamps. But this course eases the pain.
With 15 system design interview questions, you’ll learn how to design everything from Dropbox, to Pastebin, to your expected regulars like Facebook, Twitter and Netflix.
This course was developed by Design Gurus, a group of hiring managers who’ve been working at Google, Facebook, Amazon and Microsoft. So the designers of this course know exactly what’s being asked at these interviews.
Essentially, Grokking the System Design Interview is a short, concise and practical course broken down into two sections. System design tools include 2 coding playgrounds, 22 code snippets and over 100 illustrations to reinforce critical concepts.
Section 1 is all about system design problems. You’re introduced to a step-by-step guide to system design interviews, then thrown into the challenges. Each challenge also contains sections detailing various conditions and constraints of the system.
Sample Case: Design a URL Shortening Service like TinyURL
In this challenge, your job is to design a URL shortener service.
Like the other system design interview questions, you get an introduction to the system (i.e. why you would need a service like this), then you walk through the requirements and goals. In the case of the URL shortener, you are given functional requirements, non-functional requirements, and extended requirements. The course emphasizes that these are things you need to clarify with your interview before you start designing so that you can find the exact scope of the system that the interviewer has in mind.
For this challenge, the following are listed as the functional requirements:
1. Given a URL, our service should generate a shorter and unique alias of it. This is called a short link. This link should be short enough to be easily copied and pasted into applications.
2. When users access a short link, our service should redirect them to the original link.
3. Users should optionally be able to pick a custom short link for their URL.
4. Links will expire after a standard default timespan. Users should be able to specify the expiration time.Functional requirements for Design a URL Shortening Service like TinyURL
Additional details for your URL shortener are hammered out in additional sections including:
- system APIs
- database design
- basic system design and algorithms
- data partition and replication
- load balancer
- purging or DB cleanup
- security and permissions
This step-by-step problem solving process is mirrored in all the other system design challenges. Some challenges do have variations on these sections, such as Designing Facebook’s Newsfeed. You’ll also be dealing with the Feed Ranking portion and detailed component design, for example.
You’re given tips and techniques on how to solve these challenges throughout each step of the system design process.
The second part of Grokking the System Design Interview is a large glossary of System Design Basics. Remember all that stuff I listed like Caching, Data Partitioning and Load Balancing? If you’re a little rusty on that, this section explains exactly what that stuff is. You’ll also learn about:
- SQL vs. NoSQL
- Consistent Hashing
- Long-Polling vs WebSockets vs. Server-Sent Events
- and much more.
From a financial investment standpoint, the nice thing about Grokking the System Design Interview is that you can buy a monthly subscription to Educative. That way, you can feast on this course and dozens of others. It’s also part of a learning track called Ace the Java Coding Interview, which consists of 8 other courses in addition to this one. In my opinion, you can’t go wrong with the subscription even if you just need to prepare for a technical interview.
All in all, Grokking the System Design Interview is a high-quality course.
However, it is geared towards a specific subgroup of engineers with their sights set on top tech companies.
While this is a great course, I wouldn’t recommend it to code newbies or new engineers as there is a high opportunity cost. (If you’re wondering what I mean by that, check out this video on my review of Cracking the Coding Interview.)
If you want to stand out in front of the pack of hungry FAANG applicants, study the system design tools of these challenges. They will do wonders for making you stand out when the big day comes to show your interviewers what you can do.
👉Check out Grokking the System Design Interview
And if you really want to grok ’til you drop, read my review on Grokking the Coding Interview.
- Is Grokking the System Design Interview worth it?
If you're preparing for a FAANG interview, Grokking the System Design Interview is definitely worth it. With its lessons, code snippets, illustrations and playgrounds, this course offers 15 design questions created by hiring managers at FAANG companies. That means these are questions that are actually asked at the system design interviews.
- Where can I find system design interview questions?
Grokking the System Design Interview is a course by Educative geared towards engineers preparing for the system design interview. There are 15 design questions, a step-by-step guide to approaching those questions, and a glossary of system design basics. This course was created by FAANG hiring managers, so the questions contained in this course are actually asked at FAANG interviews.
- What are some Google system design interview questions?
The course Grokking the System Design Interview on Educative was created by hiring managers at FAANG companies – including Google. There are currently 15 design questions asked at system design interviews. In addition, there's a step-by-step guide to approaching the questions and a glossary of system design basics.
- Covers dozens of popular system designs
- Step-by-step explanations cover basic, intermediate and advanced concepts
- Over 100 illustrations
- Design challenges seem randomly organized (would be nice to have them listed in order of difficulty, for example)
Developed by hiring managers who’ve been working at Google, Facebook, Amazon and Microsoft, Grokking the System Design Interview is a short, concise course designed to help you land a job at a top tech company.