Case Studies for System Design Interviews
- Background on software development.
System design is part of the technical interview process in some companies. It is often a brainstorming session between the interviewer and the interviewee about the design of a software system.
Format of the Course
In this course, we study the design of a set of selected software systems with a top-down approach. In each case, we start by defining the requirements, then do a high level design of the system, and then design some of the subsystems.
The discussions are driven by questions. After each question, you can pause the video and give your own answer to practice for system design interviews. After each question, I give an answer based on my opinion. Since I intent to teach the concept being discussed, my answer might be longer than a regular answer given in an interview.
Design questions might be open-ended and might have more than one answer.
For the efficiency of the course, and not to talk about the same concept again and again, each case will include questions on selected concepts.
Concepts and Techniques
During this journey, you will encounter both domain specific questions and questions on several design techniques and concepts, such as:
High Level Design
Request Traffic Analysis
Fast Data Retrieval
Who this course is for:
- Anyone preparing for system design interviews.
I've been working on software development projects since 2005.
In my professional life, I like doing hands-on development, working on system architectures, collaborating with other people and mentoring engineers.
I have a master's in computer science.