Case Studies for System Design Interviews

Go to class
Write Review

Free Online Course: Case Studies for System Design Interviews provided by Udemy is a comprehensive online course, which lasts for 1-2 hours worth of material. The course is taught in English and is free of charge. Case Studies for System Design Interviews is taught by Erdem Salihoğlu.

Overview
  • Prepare for the system design interviews.

    What you'll learn:

    • Prepare for the system design interviews.
    • Practice with questions and answers on the design of sample software systems.
    • Get familiar with several fundamental system design techniques and concepts.
    • Develop your skills on designing software systems.

    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

    • Battery Efficiency

    • Request Traffic Analysis

    • Data Analysis

    • Stateless Services

    • Caching

    • Sharding

    • Fast Data Retrieval

    • Webhooks

    • WebSocket

    • Data Management

    • Preventing Overload

    • ...