Pragmatic System Design

Master System Design Interviews: Learn Practical Approaches and Boost Your Career
Pragmatic System Design
File Size :
666.59 MB
Total length :
4h 53m

Category

Instructor

Alexey Soshin

Language

Last update

6/2023

Ratings

4.6/5

Pragmatic System Design

What you’ll learn

How to solve most popular FANG interview questions
Most important scalability concepts
Common communication protocols
Caching and Redis
Concurrency
Database design and PostgreSQL
Sharding strategies

Pragmatic System Design

Requirements

Computer hardware basics
Basic SQL knowledge for some of the examples

Description

Prepare yourself for system design interviews and leverage your knowledge in real-world scenarios with my comprehensive course. Gain the confidence and skills to excel in system design discussions, whether for job interviews or day-to-day work.In today’s industry, designing new systems is a rare opportunity for most engineers. Architecture discussions often involve only a select few individuals within companies. However, when it comes to interviews, the expectation is that everyone is a system design master. My course bridges this gap by covering essential topics and providing effective approaches to common system design interview questions.Additionally, this course offers senior engineers an alternative perspective on system design. I encourage open discussions and aim to remove the stigma around imperfect real-world designs.Choose your preferred method of course consumption based on your availability. If you have ample time, follow the logical order of my videos for a step-by-step learning experience, gradually building your confidence.Alternatively, if time is limited or you’re not currently actively preparing for interviews, you can start with the design videos. If any unfamiliar topics arise, I provide supplementary videos or links to relevant articles.System design interviews typically evaluate breadth of knowledge first and depth of knowledge second. Thus, I’ve kept the theoretical portion of each topic concise, aligning with interviewers’ expectations.Remember, there’s no such thing as a perfect design. Every system involves trade-offs and compromises. Moreover, each design is unique, reflecting your areas of expertise. Approach my videos as a collection of ideas rather than the definitive way to design a system.I value your input! If you have additional system design interview questions or topics you’d like me to address, please let me know. Your feedback shapes my content and ensures its relevance to your needs.

Overview

Section 1: Introduction

Lecture 1 Introduction to Pragmatic System Design

Lecture 2 Diagram building blocks

Lecture 3 Diagram flow

Lecture 4 Making Estimates

Section 2: Networks

Lecture 5 Load Balancing

Lecture 6 CDN

Section 3: Caching

Lecture 7 Introduction

Lecture 8 Caching Strategies

Lecture 9 Eviction Policies

Lecture 10 Redis

Section 4: Queues

Lecture 11 Introduction

Lecture 12 Messaging

Lecture 13 RabbitMQ

Lecture 14 Kafka

Section 5: Protocols

Lecture 15 TCP

Lecture 16 UDP

Lecture 17 Summary: TCP vs UDP

Lecture 18 HTTP

Lecture 19 HTTP – Methods

Lecture 20 HTTP – Status Codes

Lecture 21 REST

Lecture 22 RESTfulness

Lecture 23 WebSockets

Lecture 24 Long Polling

Lecture 25 gRPC

Lecture 26 GraphQL

Lecture 27 Summary

Section 6: Concurrency

Lecture 28 Concurrency vs Parallelism

Lecture 29 Processes

Lecture 30 Threads

Lecture 31 Thread Pools

Section 7: Databases

Lecture 32 Indexes

Lecture 33 Sharding

Lecture 34 Consistent Hashing

Lecture 35 Partitioning

Lecture 36 CAP Theorem

Lecture 37 ACID transactions

Section 8: Architectural Patterns

Lecture 38 Web Sessions

Lecture 39 Serialization

Lecture 40 CQRS

Section 9: Design a Taxi Hailing App (aka Uber)

Lecture 41 Problem Introduction – Design a Taxi Hailing App

Lecture 42 Driver Locations

Lecture 43 Storing Locations

Lecture 44 Taxis Around You

Lecture 45 Matching

Lecture 46 Summary – Design a Taxi Hailing App

Section 10: Design a Chat (aka WhatsApp)

Lecture 47 Problem Introduction – Design a Chat

Lecture 48 Basic Design – Chat

Lecture 49 Scaling Reads

Lecture 50 Sharding Chat Messages

Lecture 51 Scaling chat using queues

Lecture 52 Summary – Design a Chat

Section 11: Design a Web Crawler (aka Google Crawler)

Lecture 53 Problem Introduction – Design a Web Crawler

Lecture 54 Basic Design – Web Crawler

Lecture 55 Fetching Content

Lecture 56 What’s a “new” URL?

Lecture 57 Uniqueness

Lecture 58 Priorities

Lecture 59 Summary – Design a Web Crawler

Section 12: Design an Auction (aka eBay)

Lecture 60 Problem Introduction – Design an Auction

Lecture 61 Basic Design for an Auction

Lecture 62 Optimistic Locking of Bids

Lecture 63 Serialisation of Bids

Lecture 64 Event-Driven Approach for Bids

Lecture 65 Scaling an Auction

Lecture 66 Summary – Design an Auction

Section 13: Design a URL Shortener (aka TinyURL)

Lecture 67 Problem Introduction – Design a URL Shortener

Lecture 68 Basic Design for a URL Shortener

Lecture 69 Short Identifiers

Lecture 70 Scaling Reads

Lecture 71 Extra: DynamoDB

Lecture 72 Caching

Lecture 73 Summary – Design a URL Shortener

Section 14: Design a Coupon System (aka Groupon)

Lecture 74 Problem Introduction

Lecture 75 Basic Design

Lecture 76 Concurrency

Lecture 77 Scalability

Lecture 78 Summary

Lecture 79 Extra: Scaling Using Queues

Section 15: Design a News Feed (aka Twitter)

Lecture 80 Problem Introduction – News Feed

Lecture 81 Basic Design – News Feed

Lecture 82 Storage Calculations – News Feed

Lecture 83 Scaling reads

Lecture 84 Long Term Storage and Short Term Storage

Lecture 85 Feed Optimisation

Lecture 86 VIPs

Lecture 87 Summary – News Feed

Section 16: Design a Ticketing System

Lecture 88 Problem Introduction – Ticketing System

Lecture 89 Basic Design – Ticketing System

Lecture 90 Checking Tickets Count

Lecture 91 Handling payments

Lecture 92 Scaling ticketing system

Lecture 93 Conflict resolution

Lecture 94 Summary – Ticketing System

Section 17: Final words

Lecture 95 Final words

Software engineers of all levels preparing for System Design interviews,Senior engineers that are looking to make the next step in their career,Software architects that are looking to broaden their knowledge

Course Information:

Udemy | English | 4h 53m | 666.59 MB
Created by: Alexey Soshin

You Can See More Courses in the Developer >> Greetings from CourseDown.com

New Courses

Scroll to Top