We may earn an affiliate commission when you visit our partners.
Course image
Rajdeep Saha | Principal Solutions Architect @AWS

Instructor of this course, Rajdeep Saha, received LinkedIn elite "Top Systems Design Voice" award in Nov 2023 for his contribution in the field of system design

[May 2023] Added 12 Factor App explanation, with related interview tips

Read more

Instructor of this course, Rajdeep Saha, received LinkedIn elite "Top Systems Design Voice" award in Nov 2023 for his contribution in the field of system design

[May 2023] Added 12 Factor App explanation, with related interview tips

[Nov 2022] Added Parking Garage System Design

What will you achieve from this course?

Welcome to Rocking System Design on AWS course:

  • Learn design building blocks such as scaling, sharding, caching, load balancing, microservices, well architected framework, security etc. all in one course

  • Master any system design using the building blocks starting from three-tier architecture, storing/retrieving images, to YouTube, IoT, Uber, Tinder, Shopify, Amazon and more

  • Tips, tricks, learning from real world Cloud Architect to use both in interviews and your real world projects

  • Learn AWS implementation of the design using Kubernetes, Lambda He has migrated and designed numerous mission-critical apps in the cloud, handling millions of transactions. Rajdeep has presented at the biggest stages, such as AWS Re:Invent, AWS Summits, and Kubecon. He has authored multiple bestselling courses and mentored students successfully to cloud jobs, including FAANG companies. Rajdeep also runs a successful YouTube channel named "Cloud With Raj" with over 100K+ subscribers. He has over 250,000+ followers across the globe. Rajdeep takes pride in teaching real-world solutions and learnings beyond just theoretical information. You are in capable hands. All opinions are Rajdeep's own.

    Course Structure

    This course has three main areas - System Design Basics, Reusable Parts of System Design, and Modern Applications System Design

    Please check out the list of lectures for detailed breakdown of each area.

    This is the course that could take your career to next level. Let's have some fun and design some awesome stuff in cloud together.

Enroll now

What's inside

Learning objectives

  • How to answer system design interview questions
  • Learn from real world cloud architect - pros/cons of different design decisions, bad vs. good answer, pitfalls to avoid, and more
  • Aws implementation of the design using kubernetes, lambda, api gateway, ec2, alb, nlb etc.
  • Solve any system design by mastering the basics - scaling, sharding, hashing, microservices, load balancers, security, well architected framework, and more
  • Test your knowledge with up-to-date system design quizzes

Syllabus

System Design Basics
Monolith vs Microservices - What and Why
Microservices on AWS
Load Balancing with ALB Vs. NLB
Read more
API and API Gateway - The Must Know for Every Design
Load Balancer vs API
Scaling - Vertical vs Horizontal
VM, Serverless, Container Scaling
Real World Scaling Interview Tips
Synchronous vs Event Driven Architectures
Queues Vs PubSub
Streaming vs Messaging
SQL vs NoSQL and Aurora vs DynamoDB
Websockets for Server to Client Communication e.g. Chatbot
Caching
Redis Memcached Caching Strategies
High Availability
High Availability vs Fault Tolerance
Distributed Computing
Hashing
Challenges of Hashing
Consistent Hashing
Database Sharding
Disaster Recovery (DR) - RPO vs RTO
Different Disaster Recovery (DR) Options
CAP Theorem
Don't Skip! System Design Basics Quiz
Course Slides
Reusable Parts of System Design

Link to the Well Architected interactive map - https://wa.aws.amazon.com/map.html

Important - Three-Tier Architecture
Three-Tier Architecture on Serverless and Kubernetes
Content Based Messaging System
Store and Retrieve Images
High Priority Queuing/Messaging System
Data Analytics & Big Data Design Patterns
Performance and Cost Optimization
Security - Authentication (Log In) & Authorization
Security - Encryption at Rest & Client/Server Side Encryption
Security - Encryption In Transit with SSL/TLS/MTLS
TLS Vs MTLS
IDS Vs IPS Vs Security Group/NACLs
Optional - Security using IAM User, Role, Group

Twelve (12) factor app

Quick Note about 12 Factor App Interview QA
Don't Skip! Another Quiz!
System Design of Modern Applications
Important - MUST Knows for System Design Interviews
Quick Note - Using Timestamps

Timestamps:

0:00​ Requirements and features

2:53​ Video ingestion

5:36​ Database

7:41​ Video encoding

10:26​ Adult content detection

12:00​ Parallel processing

13:21​ Content Delivery Network (CDN)

15:44​ Searching and viewing video

20:47​ S3 cost savings techniques

23:17​ Security

Timestamps in the video:

00:00 Features and design requirements

02:06 Table design

05:36 Timeline design

08:53 Architecture on AWS

12:34 Database discussion with possible interviewer question

17:21 Edge case

19.24 Trending feature

21.34 Security


Twitter engineering reference article: https://www.infoq.com/presentations/Twitter-Timeline-Scalability/

Design WhatsApp/Telegram/Snapchat

Timestamps:

00:00 Requirements and design specs

01:42 Image store/retrieve design

06:21 Match search and database design

09:53 Tinder recommendation engine

15:50 Precomputing matches

17:43 Chat feature

Study below if going for interview with Uber:

Schemaless MySQL: https://eng.uber.com/schemaless-part-two-architecture/

Ringpop architecture: https://eng.uber.com/ringpop-open-source-nodejs-library/

Design Fandango/Ticketmaster/Livenation
IOT System Design

00:00 Requirements and design spec

04:57 Online store design

12:04 Cost effectiveness and scaling

14:04 Database design

20:32 Security

22:10 Analytics and high availability

Design URL Shortener/TinyURL
Design Parking Garage
Design Amazon.com/Flipcart
Conclusion

Keep learning and keep rocking ?

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches key system design concepts, from the basics to advanced topics like microservices and load balancing, making it suitable for various levels of learners
Covers system design principles not only for legacy architectures like three-tier but also for modern applications like social media, streaming services, and e-commerce platforms
Provides practical guidance on AWS implementation, incorporating services like Kubernetes, Lambda, and API Gateway, making it relevant for learners aiming to work with AWS
Led by Rajdeep Saha, a Principal Solutions Architect at AWS and a recognized expert in system design, offering learners access to industry knowledge and best practices
Includes up-to-date system design quizzes to test learners' understanding and prepare them for interviews
May be challenging for those with no prior exposure to system design concepts, as it dives into advanced topics like caching, load balancing, and distributed computing

Save this course

Save Rocking System Design to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Rocking System Design with these activities:
Compile study materials
Review foundational system design principles in preparation for this course.
Show steps
  • Gather online materials
  • Review course materials
Watch online videos about AWS architecture
Reinforce system design principles through guided tutorials.
Browse courses on System Design
Show steps
  • Identify relevant video tutorials
  • Watch and take notes on video content
  • Practice implementing concepts from videos
Participate in system design workshops or hackathons
Engage in hands-on learning and collaborate with others to solve system design challenges.
Show steps
  • Identify and register for workshops or hackathons
  • Prepare for the event by reviewing relevant materials
  • Actively participate in the event and contribute to team efforts
One other activity
Expand to see all activities and additional details
Show all four activities
Mentor junior engineers or students on system design concepts
Solidify your understanding by teaching and guiding others.
Browse courses on Mentoring
Show steps
  • Identify opportunities to mentor others
  • Prepare materials and resources for mentoring sessions
  • Provide guidance and support to mentees

Career center

Learners who complete Rocking System Design will develop knowledge and skills that may be useful to these careers:
Cloud Architect
Cloud Architects design and build software systems in the cloud. The core topics of the Rocking System Design course in load balancing, caching, and fault tolerance are essential knowledge for any Cloud Architect. This course is especially recommended if you want to be an AWS cloud architect, as it covers AWS in great detail.
Software Architect
Software Architects design and build highly complex computer software systems. The Rocking System Design course teaches about load balancing, caching, hashing, and other technical techniques of building complex systems. This knowledge would be extremely useful to a Software Architect. This course may be of particular use when preparing for a software architect job interview, as it contains tips and advice on how to answer common questions.
DevOps Engineer
DevOps Engineers bridge the gap between development and operations teams. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge is essential for DevOps Engineers, who need to be able to design and manage complex systems.
Database Administrator
Database Administrators manage and maintain databases. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be useful for a Database Administrator who needs to be able to design and manage database systems.
Data Engineer
Data Engineers design and build systems for storing and processing data. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be extremely useful to a Data Engineer who needs to be able to design and manage data systems.
Systems Engineer
Systems Engineers maintain and repair computer systems. This course will help Systems Engineers understand the inner workings of systems so that they can better troubleshoot and maintain them. The course covers key topics such as disaster recovery and fault tolerance.
Security Engineer
Security Engineers design and implement security systems. The Rocking System Design course teaches about the principles of system design and how to build secure systems. This knowledge would be useful for a Security Engineer.
Mobile Developer
Mobile Developers design and develop mobile applications. The Rocking System Design course teaches about load balancing, caching, and other techniques for building scalable and reliable systems. Mobile Developers would find this course useful since many mobile apps have these same requirements.
Software Tester
Software Testers test software for bugs and defects. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be полезным for a Software Tester who needs to be able to understand the technical aspects of software testing.
Network Engineer
Network Engineers design and manage computer networks. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be полезным for a Network Engineer.
Project Manager
Project Managers plan and execute projects. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be useful for a Project Manager who needs to be able to understand the technical aspects of project management.
Product Manager
Product Managers plan and develop new products. The Rocking System Design course teaches about how to design and build scalable and reliable systems. This knowledge would be useful for a Product Manager who needs to be able to understand the technical aspects of product development.
Business Analyst
Business Analysts analyze business needs and develop solutions. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be useful for a Business Analyst who needs to be able to understand the technical aspects of business analysis.
Technical Writer
Technical Writers create documentation for software and other technical products. The Rocking System Design course teaches about the principles of system design and how to build scalable and reliable systems. This knowledge would be useful for a Technical Writer who needs to be able to understand the technical aspects of the products they are writing about.
Web Developer
Web Developers design and develop websites. The Rocking System Design course teaches about the basics of system design and how to build scalable and reliable systems. This course may be useful for a Web Developer who wants to learn more about the underlying architecture of the web.

Reading list

We've selected seven books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Rocking System Design.
Provides a comprehensive overview of the principles and practices of designing and building data-intensive applications. It covers topics such as data modeling, storage, processing, and analysis, and it valuable resource for anyone who wants to learn more about this topic.
Practical guide to designing and building microservices. It covers topics such as microservice architecture, API design, and deployment strategies, and it valuable resource for anyone who wants to learn more about this topic.
Study guide for the AWS Certified Solutions Architect - Associate exam. It covers all of the topics that are tested on the exam, and it valuable resource for anyone who is preparing to take the exam.
Provides a comprehensive overview of cloud computing concepts, technologies, and architectures. It covers topics such as cloud computing basics, cloud service models, and cloud deployment models. It valuable resource for anyone who wants to learn more about cloud computing.
Provides a comprehensive overview of MySQL performance optimization. It covers topics such as MySQL architecture, performance tuning, and replication. It valuable resource for anyone who wants to learn more about MySQL performance optimization.
Provides a comprehensive overview of Apache Kafka. It covers topics such as Kafka architecture, Kafka clients, and Kafka administration. It valuable resource for anyone who wants to learn more about Apache Kafka.
Provides a comprehensive overview of MongoDB. It covers topics such as MongoDB architecture, MongoDB clients, and MongoDB administration. It valuable resource for anyone who wants to learn more about MongoDB.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Rocking System Design.
Rocking AWS CloudFormation with DevOps, Interview Guide
Most relevant
Mastering the System Design Interview
System Design Interview Guide for Software Architecture
AWS Certification Preparation Guide
AWS Certified Advanced Networking - Specialty (ANS-C01)
AWS CloudFormation Master Class v2 [2024]
Learning Path: Go: Building Cloud Native Go Applications
Cloud and AWS Basics
Implementing Amazon Elastic File System
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser