Introduction
Almost every product based company has a System Design round in their interviews. So, it becomes very important to get hold of this if you are preparing for such companies.
Most engineers struggle with the system design interview (SDI), partly because of their lack of experience in developing large-scale systems and partly because of the unstructured nature of SDIs.
Thus, I designed this course so that you can perform well at system design interviews.
Why you should enroll into this course?
If you want to start learning coding today? How would you start? You will start learning DSA, start participating in coding contests, solve problems on sites like leetcode, codechef, codeforces etc right?
If I ask you the same question for system design like If you want to learn system design, how will you start? You would most probably not have a definite learning path for the same. This is because online world does not have enough content on system design. But almost every company ask system design questions in their interviews today.
Goals
- People should be able to design better systems during the interview.
- One of the most important goal of this course is that you should get lot of practical experience through lab sessions.
Course Features
- Small batch size.
- Best in industry.
- Exclusive course content.
- Various case studies.
- Hands on Lab sessions using Azure/AWS.
Fill this form if interested
Course Structure
Lecture 1:
- What exactly is a System Design Interview?
- Expectations from Interviewee
- Breadth Vs Depth
- Should you know everything about everything?
- System Design Process ( Motivating Example: Design UBER.)
- Common Mistakes
- Chaotic Approach
- Systematic Approach
Lecture 2:
- Trade-offs in a large scale system
- Evolution of systems
- Performance Vs Scalability
- Latency Vs Throughput
- Availability Vs Consistency(CAP Theorem)
- Lab Session: Seeing scalability happening in real via live demo.
Lecture 3:
- Patterns of Enterprise Application Architecture
- MicroService Vs Monolith
- Service Discovery
- API Gateway
- Client - server communications:
- Different types and which one to use when.
- Long polling
- Sockets
- Http
- Server sent events
- Start designing first system.
Lecture 4:
- Replication and Redundancy
- Achieving Availability
- Strongly versus eventual consistent systems
- Quorums
- Identify and fix availability problems with service we built in previous lecture.
Lecture 5:
- Sharding or Data Partitioning
- Achieving scalability.
- Consistent Hashing
- Routing
- Identify and fix scalability problems with service we built in previous lecture.
Lecture 6:
- Components of a large scale system
- Databases/Storage Layer
- SQL vs NoSQL
- How NoSQL databases work?
- Why NoSQL databases scale well?
- Practical Examples of SQL/NoSQL database usages.
- Lab Session: RDS and DynamoDb
- Databases/Storage Layer
Lecture 7:
- Components of a large scale system
- Caching
- All about caching - Policies, usages etc.
- Practical examples to demonstrate use and helpfulness of cache
- CDNs
- Load balancers
- Live Demo
- Caching
Lecture 8:
- Components of a large scale system
- Queues and asynchronous systems
- Event driven systems
- SQS and Kafka
- Events Ordering
- Example system design using queues - Search Indexing, etc.
- Queues and asynchronous systems
Lecture 9:
- Serverless Architecture
- What it is?
- How to implement?
- Benefits
- Stream processing
- Lab Session for Serverless Architecture using Dynamo, Queues and Lambdas
Lecture 10:
- Tips to excel in SDI.
- System design examples like netflix, etc
Instructor profile:
I am Udit Agarwal. I am Technology Enthusiast and currently working as a Software Engineer in Backend. I have been working in the industry for quite sometime now and I have most of my experience in designing and scaling Backend Systems. Have worked with companies like Microsoft, Adobe, Amazon, Directi. Each company gave me an opportunity to work on various types of high throughput systems like chat applications, e-commerce, cloud file systems, streaming systems etc. With every product, I faced different challenges which taught me how to design the right systems using different technologies for the given problem. I have a sound knowledge of Java, DynamoDB, SQL, Caching technologies like Redis, Queuing systems like SQS, Kafka, etc. I graduated from IIIT Allahabad in 2013.
LinkedIn Profile: https://www.linkedin.com/in/anomaly2104
My YouTube Channel: https://www.youtube.com/c/UditAgarwal21
Payment details:
Please send the amount to the following UPI. After sending the payment pleae send the screenshot of the transaction to hello@uditagarwal.com or message me the screenshot in slack workspace. UPI Details:
Tech Community:
Nothing can beat a community if you are learning something. Communities even help you learn and also help others on a regular basis. To help all of us regularly discuss various problems like High level system design, Low level system design, coding, etc, I have created a community on slack which I myself will also be using to coordinate on this. So, to get more updates and interact with me real time, you should join this slack community.
Join Slack Channel: https://bit.ly/GeniusMyndsSlack