System-Design-Resource

Things you must know in System Design -

System design basics : https://bit.ly/3SuUR0Y

Horizontal and vertical scaling : https://bit.ly/3slq5xh

Load balancing and Message queues: https://bit.ly/3sp0FP4

High level design and low level design, Consistent Hashing, Monolithic and Microservices architecture : https://bit.ly/3DnEfEm

Caching, Indexing, Proxies : https://bit.ly/3SvyVDc

Networking, How Browsers work, Content Network Delivery ( CDN) : https://bit.ly/3TOHQRb

Database Sharding, CAP Theorem, Database schema Design : https://bit.ly/3CZtfLN

Concurrency, API, Components + OOP + Abstraction : https://bit.ly/3sqQrhj

Estimation and Planning, Performance : https://bit.ly/3z9dSPN

Map Reduce, Patterns and Microservices : https://bit.ly/3zcsfmv

SQL vs NoSQL and Cloud : https://bit.ly/3z8Aa49

Resources

https://github.com/checkcheckzz/system-design-interview

http://blog.gainlo.co/index.php/category/system-design-interview-questions/

https://medium.com/javarevisited/25-software-design-interview-questions-to-crack-any-programming-and-technical-interviews-4b8237942db0

Cheatsheet

https://gist.github.com/vasanthk/485d1c25737e8e72759f

HLD

https://leetcode.com/discuss/interview-question/system-design/457451/Resources-for-System-Design

https://github.com/donnemartin/system-design-primer

https://www.youtube.com/c/SystemDesignInterview/videos![image](https://user-images.githubusercontent.com/6725429/155879640-8d78ccbd-2557-421a-a1ca-9bccdb132b5d.png)

LLD

https://github.com/topics/low-level-design

https://github.com/prasadgujar/low-level-design-primer/blob/master/solutions.md https://github.com/kumaransg/LLD https://www.java67.com/2018/05/top-20-system-design-interview-questions-answers-programming.html

These include YouTube videos/playlists/channels. I've not mentioned articles since you can only learn so much from an article, to get skills for cracking interviews.

  1. https://www.youtube.com/playlist?list=PLSGQtXNzpxREnnLecm6Kyz2-ZSdhaW3ob [Biswajit Sinha]
  2. https://www.youtube.com/playlist?list=PL564gOx0bCLouDCUMtmj6hMEu1JS7QYEr [Udit Agarwal]
  3. https://www.youtube.com/playlist?list=PLK8IOvtbwVssQ59IEL73S2ucQdTLiSZC6 [Think Software]
  4. https://www.youtube.com/playlist?list=PL6Gb7nO-kso4eaeWbgTT7Jp7Yj3zm1s87 [Mayur Vaid]

Famous Resources

These are the best resources for System Design on the Internet

https://github.com/codersguild/System-Design

Transcoding Videos at Scale: https://www.egnyte.com/blog/2018/12/transcoding-how-we-serve-videos-at-scale/

AirBnb Idempotency: https://medium.com/airbnb-engineering/avoiding-double-payments-in-a-distributed-payments-system-2981f6b070bb

Facebook Cluster Management: https://engineering.fb.com/data-center-engineering/twine/

Google Autopilot - Autoscaling: https://dl.acm.org/doi/pdf/10.1145/3342195.3387524

Netflix Workflow Orchestration: https://netflix.github.io/conductor/

Opensource Workflow Management: https://github.com/spotify/luigi

Facebook Video Broadcasting: https://engineering.fb.com/ios/under-the-hood-broadcasting-live-video-to-millions/

LinkedIn Brooklin- Real time data streaming: https://engineering.linkedin.com/blog/2019/brooklin-open-source

Amazon S3 Performance hacks: https://aws.amazon.com/blogs/aws/amazon-s3-performance-tips-tricks-seattle-hiring-event/

Amazon S3 object expiration: https://aws.amazon.com/blogs/aws/amazon-s3-object-expiration/

Open Source Distributed File System: https://docs.ceph.com/en/latest/architecture/

Pintrest Time Series Database: https://medium.com/pinterest-engineering/goku-building-a-scalable-and-high-performant-time-series-database-system-a8ff5758a181

Uber Time Series DB: https://eng.uber.com/aresdb/

TimeSeries Relational DB: https://blog.timescale.com/blog/time-series-data-why-and-how-to-use-a-relational-database-instead-of-nosql-d0cd6975e87c/

Facebook Gorilla Time Series DB: http://www.vldb.org/pvldb/vol8/p1816-teller.pdf

Circuit Breaker Algorithm: https://martinfowler.com/bliki/CircuitBreaker.html

Uber Rate Limiter: https://github.com/uber-go/ratelimit/blob/master/ratelimit.go

What is HTTP: https://engineering.cred.club/head-of-line-hol-blocking-in-http-1-and-http-2-50b24e9e3372

QUIC Protocol: https://www.akamai.com/blog/performance/http3-and-quic-past-present-and-future

Chess Engine Building: https://www.youtube.com/watch?v=U4ogK0MIzqk

Subscription Manager: https://netflixtechblog.com/building-a-rule-based-platform-to-manage-netflix-membership-skus-at-scale-e3c0f82aa7bc

Operational Transform: http://www.codecommit.com/blog/java/understanding-and-applying-operational-transformation

Google Docs: https://www.youtube.com/watch?v=uOFzWZrsPV0&list=PLXDe3d8o9VFtydBV5biyz9iS3WqKsBMD5&index=3

Uber Distributed Request Tracing: https://eng.uber.com/distributed-tracing/

Elastic Search Time Based Querying: https://www.elastic.co/guide/en/elasticsearch/guide/current/time-based.html

Elastic Search Aggregation: https://www.elastic.co/guide/en/elasticsearch/guide/current/aggregations.html

Pintrest Logging: https://medium.com/@Pinterest_Engineering/open-sourcing-singer-pinterests-performant-and-reliable-logging-agent-610fecf35566

Google Monitoring Infrastructure: https://www.facebook.com/atscaleevents/videos/959344524420015/

Kubernetes Service Mesh: https://akomljen.com/kubernetes-service-mesh/

Kubernetes Sidecar:https://www.weave.works/blog/introduction-to-service-meshes-on-kubernetes-and-progressive-delivery

Nginx Service Mesh: https://www.nginx.com/learn/service-mesh/

Facebook Data Engineering: https://engineering.fb.com/2016/05/09/core-data/introducing-fblearner-flow-facebook-s-ai-backbone/

Amazon Dynamo DB Internals: https://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

Indexing in Cassandra: https://www.bmc.com/blogs/cassandra-clustering-columns-partition-composite-key/

Design Patterns in Amazon Dynamo DB: https://www.youtube.com/watch?v=HaEPXoXVf2k

Internals of Amazon Dynamo DB: https://www.youtube.com/watch?v=yvBR71D0nAQ

API Design: https://medium.com/airbnb-engineering/building-services-at-airbnb-part-1-c4c1d8fa811b

Swagger APIs: https://swagger.io/docs/specification/about/

Sorted String Tables and Compaction Strategies: https://github.com/scylladb/scylla/wiki/SSTable-compaction-and-compaction-strategies

Leveled Compaction Cassandra: https://www.datastax.com/blog/leveled-compaction-apache-cassandra

Log Structured Merge Tree: https://www.cs.umb.edu/~poneil/lsmtree.pdf

Scylla DB Compaction: https://github.com/scylladb/scylla/wiki/SSTable-compaction-and-compaction-strategies

Cassandra Architecture: https://docs.datastax.com/en/archived/cassandra/3.0/cassandra/architecture/archIntro.html

Google BigTable Architecture: https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf

Hyperloglog Algorithm: https://odino.org/my-favorite-data-structure-hyperloglog/

Caching: http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html

Microsoft Caching Guide: https://docs.microsoft.com/en-us/previous-versions/msp-n-p/dn589802(v%3dpandp.10)

Database replication: https://dev.mysql.com/doc/refman/8.0/en/replication.html

Capacity Estimation: http://static.googleusercontent.com/media/research.google.com/en//people/jeff/stanford-295-talk.pdf

Facebook Twine Containerization: https://engineering.fb.com/developer-tools/zookeeper-twine/

CloudFlare Containerization: https://blog.cloudflare.com/cloud-computing-without-containers/

Docker Architecture: https://docs.docker.com/get-started/overview/#docker-architecture

Monolith to Microservice: https://martinfowler.com/articles/break-monolith-into-microservices.html

Netflix Data replication - Change Data Capture: https://netflixtechblog.com/dblog-a-generic-change-data-capture-framework-69351fb9099b

YouTube Architecture: http://highscalability.com/youtube-architecture

YouTube scalability 2012: https://www.youtube.com/watch?v=w5WVu624fY8

Google Capacity Estimation: https://www.youtube.com/watch?v=modXC5IWTJI

Scalability at YouTube 2012: https://www.youtube.com/watch?v=G-lGCC4KKok

Back of envelope Calculations at AWS: https://www.youtube.com/watch?v=-3qetLv2Yp0

Oracle Publisher Subscriber: https://docs.oracle.com/cd/B10501_01/appdev.920/a96590/adg15pub.htm

Amazon Pub Sub Messaging: https://aws.amazon.com/pub-sub-messaging/

Asynchronous processing: http://blog.codepath.com/2013/01/06/asynchronous-processing-in-web-applications-part-2-developers-need-to-understand-message-queues/

Async Request Response: https://www.enterpriseintegrationpatterns.com/patterns/conversation/RequestResponse.html

DB as queue Antipattern: http://blog.codepath.com/2012/11/15/asynchronous-processing-in-web-applications-part-1-a-database-is-not-a-queue/

Using a database as a message queue: https://softwareengineering.stackexchange.com/questions/231410/why-database-as-queue-so-bad

Anti-pattern of DB as a queue: http://mikehadlow.blogspot.com/2012/04/database-as-queue-anti-pattern.html

Drawbacks of DB as a queue: https://www.cloudamqp.com/blog/why-is-a-database-not-the-right-tool-for-a-queue-based-system.html

Oracle Single Points of failure: https://docs.oracle.com/cd/E19693-01/819-0992/fjdch/index.html

DNS single point of failure 2004: http://www.tenereillo.com/GSLBPageOfShame.htm

Martin Fowler- Event Driven Architecture: https://www.youtube.com/watch?v=STKCRSUsyP0

Event Driven Architecture: https://martinfowler.com/articles/201701-event-driven.html

Monolith Architecture: https://buttercms.com/books/microservices-for-startups/should-you-always-start-with-a-monolith/

Monoliths vs Microservices: https://articles.microservices.com/monolithic-vs-microservices-architecture-5c4848858f59

Microservices: http://highscalability.com/blog/2018/4/5/do-you-have-too-many-microservices-five-design-attributes-th.html

Uber Nanoservices antipattern: https://www.youtube.com/watch?v=kb-m2fasdDY

Load Balancer with Sticky Sessions: https://stackoverflow.com/questions/10494431/sticky-and-non-sticky-sessions

Citrix what is load balancing: https://www.citrix.com/en-in/solutions/app-delivery-and-security/load-balancing/what-is-load-balancing.html

Nginx Load Balancing: https://www.nginx.com/resources/glossary/load-balancing/

What is a message queue: https://www.cloudamqp.com/blog/what-is-message-queuing.html

Distributed Design Patterns: http://horicky.blogspot.com/2010/10/scalable-system-design-patterns.html

Consistent hashing: https://michaelnielsen.org/blog/consistent-hashing/

Facebook Messenger Optimisations: https://spectrum.ieee.org/how-facebooks-software-engineers-prepare-messenger-for-new-years-eve

Outlier Detection: https://towardsdatascience.com/outlier-detection-with-isolation-forest-3d190448d45e

Anomaly Detection: https://towardsdatascience.com/machine-learning-for-anomaly-detection-and-condition-monitoring-d4614e7de770

Uber Real Time Monitoring and Root Cause Analysis Argos: https://eng.uber.com/argos-real-time-alerts/

Microsoft Anomaly Detection: https://www.youtube.com/watch?v=12Xq9OLdQwQ&t=0s

Facebook real time text search engine: https://www.facebook.com/watch/?v=432864835468

Avoiding Single Points of Failure: https://medium.com/the-cloud-architect/patterns-for-resilient-architecture-part-3-16e8601c488e

Netflix Multi-Region Availability: https://netflixtechblog.com/active-active-for-multi-regional-resiliency-c47719f6685b

Google S2 library: https://blog.christianperone.com/2015/08/googles-s2-geometry-on-the-sphere-cells-and-hilbert-curve/

Sharding: https://medium.com/@jeeyoungk/how-sharding-works-b4dec46b3f6

Netflix Video Encoding at Scale: https://netflixtechblog.com/high-quality-video-encoding-at-scale-d159db052746

Netflix Shot based encoding: https://netflixtechblog.com/optimized-shot-based-encodes-now-streaming-4b9464204830

Netflix Real Time Stream Processing: https://netflixtechblog.com/keystone-real-time-stream-processing-platform-a3ee651812a

Google Guava Cache: https://github.com/google/guava/wiki/CachesExplained

Caching (See the README): https://github.com/ben-manes/caffeine/

Youtube Channels

System design youtube channels.

1)BYTE BY BYTE https://lnkd.in/dB3GqYCG

2)TECH TAKSHILA

https://lnkd.in/d8k5jhUj

3)DEFOG TECH

https://lnkd.in/dBavD7dv

4)HUSSEIN NASSER

https://lnkd.in/d_eMmmGE

5)SYSTEM DESIGN INTERVIEW

https://lnkd.in/dkkDyFUs 6)sudoCODE (by Yogita Sharma)

https://lnkd.in/djxWJtJ9

7)codeKarle

https://lnkd.in/d37-enAN

8)CMU DATABASE GROUP https://lnkd.in/dhqHi3nA

9)interviewing.io https://lnkd.in/d2eciNxC

  1. Gaurav Sen

https://lnkd.in/dKTWUJhd

11)ENGINEERING WITH UTSAV

https://lnkd.in/d3H4qTHz

  1. MARTIN KLEPPMANN https://lnkd.in/dWQbAP9c

13)EXPONENT https://lnkd.in/d3WJTDMS

  1. MIT

https://lnkd.in/dvu5jUWR

15)THINK SOFTWARE

https://lnkd.in/dw_zTT9R

16)SUCCESS IN TECH https://lnkd.in/dz76hYDc

17)TECH DUMMIES NARENDRA L https://lnkd.in/dDFd8Wbn

18)OKTADEV

https://lnkd.in/dfTW8tHY

System Design Case Studies

Design Messenger App : https://bit.ly/3DoAAXi

Design Instagram : https://bit.ly/3BFeHlh

Design Twitter : https://bit.ly/3qIG9Ih

Design Uber : https://bit.ly/3fyvnlT

Design TikTok : https://bit.ly/3UUlKxP

Design Facebook's Newsfeed : https://bit.ly/3RldaW7

Design Web Crawler : https://bit.ly/3DPZTBB

Design API Rate Limiter : https://bit.ly/3BIVuh7

Design Dropbox : https://bit.ly/3SnhncU

Design Youtube : https://bit.ly/3dFyvvy

Design Tinder : https://bit.ly/3Mcyj3X

Design Yelp : https://bit.ly/3E7IgO5

Design Whatspp : https://bit.ly/3M2GOhP

Design URL shortener : https://bit.ly/3xP078x

All solved case studies : https://bit.ly/3dCG1rc

Most Popular System Design Questions : https://bit.ly/3E9oH7K

Complete System Design Basics Series : https://bit.ly/3rG1cfr

Most Popular System Design Questions : https://bit.ly/3Dp40Ux

Advanced SQL

SQL Basics and Kick start of Advanced SQL Series : https://bit.ly/3fC3Y2Q SQL Basics, Query Structure, Built In functions Conditions : https://bit.ly/3U7dFoI Most Important Commands, Joins and Filters : https://bit.ly/3zI6Im7 Set Theory Operations, Stored Procedures and CASE statements in SQL : https://bit.ly/3Nxj9qz Wildcards, Aggregation and Sequences in SQL : https://bit.ly/3t11QVn Subqueries, Group by, order by and Having clauses in SQL and Analytical Functions : https://bit.ly/3Un3eNx Window Functions, Grouping Sets and Constraints in SQL : https://bit.ly/3DF4Dbv BigQuery Basics, SELECT, FROM, WHERE and Date and Extract in BigQuery : https://bit.ly/3UixI3z Common Expression Table, UNNEST Clause, SQL vs NoSQL Databases : https://bit.ly/3WI74Tr Triggers, Pivot and Cursors in SQL : https://bit.ly/3fOUWzm Views, Indexes and Auto Increment in SQL : https://bit.ly/3zVOg9q Query optimizations, Performance tuning in SQL : https://bit.ly/3EeUfZL Introduction to MySQL, PostgreSQL and Mongo DB, Comparison between MySQL and PostgreSQL and Mongo DB, Introduction to SQL and NoSQL Databases : https://bit.ly/3DXpHKO MySQL in Depth : https://bit.ly/3EoDRWN PostgreSQL in Depth: https://bit.ly/3UjStw5

Complete Data Structures Series - https://bit.ly/3hFWNax