#AsliEngineering

The System Design Masterclass


A masterclass that helps you become great at designing scalable, fault-tolerant, and highly available systems.


January 2022 enrollments are closed and the course commences on 8th of January, 2022.

The next cohort starts on 5th of March, 2022.


The Program

This is a prime and intermediate-level cohort-based course aimed at providing an exclusive and crisp learning experience. The program will cover most of the topics under System Design and Software Architecture including but not limited to - Architecting Social Networks, Building Storage Engines and, Designing High Throughput Systems.

The program will have a blend of Live Classes happening on Weekends 4 to 6:30 pm IST, 1:1 Mentorship sessions happening on weekdays, and assignments. The program is designed to be intense and crisp to accelerate learning.


Why a cohort based course?



cohort

/ˈkəʊhɔːt/

noun

A cohort is a small group of students who work through a curriculum together to achieve the same learning objective.



Small and Focussed Group

Each cohort will have close to ~70 people ensuring you have a richer learning experience.

Thrive Together

Unlike MOOCs where the information flow is unidirectional, the cohort here will thrive on interactions and collaborations.

Discuss and Learn

Learning happens when we discuss, and hence everyone is encouraged to speak, put forth opinions, and discuss.


Why should you join?

The primary objective of this program is to make you comfortable at building systems that are scalable, fault-tolerant, and reliable. But here is what you could reap out of it.



Design systems like a pro

The course will make you comfortable at designing any system, no matter how stringent the requirements are.

Know the unknowns

Learn some of the most interesting concepts, super-clever algorithms, and sophisticated architectures. You are bound to have mind-blown moments.

1:1 Mentorship

When in a dilemma about an architectural decision, engineering challenges, career advice, or general mentorship, get your doubts cleared during your 1:1s with Arpit.

Crack the interview

Be it FAANG or your dream startup, you would be at ease while designing systems in the interview round.

Upskill and level-up

Learn the designing paradigms and upskill yourself to accelerate your career growth and stand out.

Network and Community

Perhaps the most interesting takeaway will be your new network, friends, and a lot of memories.


The world is learning

People from all over the world have mastered System Design through this course.


300+
ENGINEERS


6
COHORTS


7
COUNTRIES



Program outline

You can find detailed problem statements in this Github repository.



Foundation

Week 1

The first week is about learning the macro and micro components of System Design.


Topics and agenda
  • How to approach System Design
  • Designing Online/Offline indicator
  • Designing a Blogging Platform
  • Scaling and Caching strategy for Blog
  • Delegation and Async Processing
  • Supporting million concurrent users
  • Designing communication paradigm
Checkout detailed problem statements here

Databases

Week 2

This week, we learn everything about databases, from SQL to NoSQL to Embedded, learn how to scale them.


Topics and agenda
  • SQL Transactions
  • Database Indexes and Locking
  • Designing Airline Check-in System
  • Designing SQL backed KV Store
  • Scaling relational databases
  • NoSQL databases: when, where and why?
  • Designing Google Firestore
Checkout detailed problem statements here

Going Distributed

Week 3

The third week will be about understanding Distributed Systems and the challenges that come while building them.


Topics and agenda
  • Key to a good distributed system
  • Designing Load Balancers
  • Remote and distributed locks
  • Designing ID Generators
  • Open QnA and Doubt Resolution
Checkout detailed problem statements here

Building Social Networks

Week 4

This is when we start modeling and building real-world systems, and we start with Social Networks.


Topics and agenda
  • Day 0 Tech Stack
  • Designing Image uploader service
  • Designing HashTag extractor service
  • Designing User Affinity service
  • Designing Message Indicators, and 4 more
Checkout detailed problem statements here

Building Storages

Week 5

This week will be about building ephemeral, persistent, reliable and durable storage engines.


Topics and agenda
  • Designing Distributed Caches
  • Consistent Hashing: Application and Implementation
  • Designing a Word Dictionary
  • Designing Log-Structured KV Store
Checkout detailed problem statements here

Building High Throughput Systems

Week 6

This week, we level-up and build systems that are heavily concurrent and required to deliver very high throughput.


Topics and agenda
  • Designing S3
  • Designing LSM Trees
  • Designing Video Processing Pipeline
  • Designing Flash Sale
Checkout detailed problem statements here

IR Systems and Adhoc Designs

Week 7

This week is about understanding Information Retrieval Systems and discuss some interesting adhoc systems.


Topics and agenda
  • Designing Search Engines
  • Designing Realtime Recommendation System
  • Distributed Task Scheduler
  • Designing Message Brokers like SQS
  • Open QnA and Doubt Resolution
Checkout detailed problem statements here

Building Algorithmic Systems

Week 8

The final week will be about exploring systems that are driven by a super-clever algorithm.


Topics and agenda
  • API Rate Limiter
  • Algorithm behind File Sync
  • Algorithm behind Tinder
  • Approximation Algorithms
  • Algorithm for place locator
Checkout detailed problem statements here
👇 This is how we designed and scaled notifications for Instagram 👇

A video snippet straight out of one of the live session






Hi, I'm Arpit Bhayani 👋


In my last ~9 years of experience, I have worked at D. E. Shaw, Practo, Amazon, and Unacademy; and have built systems, services, and platforms that scaled to billions.

Post my masters in CSE from IIIT Hyderabad I joined D. E. Shaw for a short stint of 2 months, before moving to Practo and working there as a Platform Engineer, building and owning close to 8 different microservices. Post Practo I worked at Amazon on their primary mission-critical E-Commerce Database and built Data Pipelines that cold tiered the stale data.

After quitting Amazon in 2018, I joined Unacademy as their first Technical Architect and there I designed, built, managed, and scaled services like Search, Notification, Logging, Deployment Engine, and many more. I have now transitioned into the role of a Sr. Engineering Manager, leading the Site Reliability vertical.

In January 2020, I started my newsletter where I write and share an essay about programming languages internals, deep dives on some super-clever algorithms, and few tips on building scalable distributed systems. The newsletter currently has close to 2500+ subscribers.

Recently, I have started building Revine - a programming langauge for kids helping them develop logic through animations and spark their creativity through artwork.


Join the waitlist

₹24,999 $399

plus 18% GST, a total of ₹29,999 or $475


YOU'LL GET


40 hours of Live Classes on Weekends, 4-6:30 pm IST

1:1 Personalized Mentorship on Weekdays

Multiple assignments and projects

Lifetime access to all the Session Recordings

Lifetime access to the Network and Community

January 2022 enrollments are closed and the course commences on 8th of January, 2022.

March 2022 cohort commences on 5th of March, 2022.



If you have questions or need any clarifications before enrolling, please reach out to me at arpit.masterclass@gmail.com.


What worked the best?

From the reviews and feedbacks I gathered, here are a few key things that worked for folks who took this course.


structured and well organised

quality and non-repetitive content

could ask question any time

open ended discussion

learning community

much more than blogs we find

lego blocks

notes

working through problems as a group


What people say about this course?

Some testimonials from the people who recently took this course.


Manoranjith November 2021

One of the best learning experiences I ever had.

In the the 8 weeks, Arpit takes the cohort through a series of discussions starting from fundamental ideas around system design and explains how to apply them in a various contexts.

Each week was only better than the previous. The discussions usually started with a clear description of the problem to be solved, followed by an open ended discussion and then an extensive discussion of the optimal solution. The best thing about this approach is that, it helped me understand the thinking that could have possibly gone behind designing a particular system, rather than just understanding how it was designed.

Another aspect is that, most resources on the internet either focused on the high level ideas on designing a system or on the specifics of how to implement a system/feature using a particular product. But, in these course, Arpit blends both these aspects very well. It helped me gain a holistic understanding of the high level design, what products can be used, why and how to use them.

On a personal note, Arpit is a truly curious engineer and a passionate teacher. He is genuinely interested in sharing the knowledge and insights he has gained over the past few years and takes a lot of effort in doing it in the best possible way.

Rakshit Tiwari November 2021

The course structure for this CBC is curated in a fantastic way. Cherry on top of that is Arpit's passion while teaching (even any complex topic like algorithmic systems) which really helps generate more curiosity while going in depth and brainstorming about anything.

Unlike most videos on YT or essays/blogs which people generally follow for system design, this course contains discussion of very specific systems and goes in depth of what can break at scale and how one should build with these problems in mind. Be it topics like designing your own S3, load balancer, your own search engine, it has been quite a journey to learn how to build such massive systems with first principles.

Another great thing is the community of people attending this course which makes the discussions 10x better. There are very experienced senior engineers attending this course alongside who have built stuff for a huge scale and its pretty amazing not to learn just from Arpit but also their collective experience.

Abhishek November 2021

The course is so crisp and detailed. It was a terrific experience to be join this course.

Arpit has really put out a lot of efforts in creating this course and knows in-depth of each system. It covers each design in a great depth with multiple solutions for each case and thats the best part of it.

The way Arpit first creates a base and then puts everthing on top of it which makes a design intuitive for everyone and very easy to understand. Concepts is focused here so that later when some new requirements come, there will be a way to figure out on own about how to design it.

Atul Nene November 2021

Arpit’s cohort involves

  • A collection of current and highly relevant software design issues of scale, in the industry

  • Problem solving from simple to more complex takes students through all nuances and gives deep understanding

  • Brainstorming sessions where everyone participates with their thoughts with enough space for questions and clarifications

  • Arpit’s enthusiasm and his conversational style that is friendly and encourages participation

  • Both online as well as offline modes are super convenient for busy, working students

A rare course that contributes to engineering maturity in the tech space. Highly recommended, especially for experienced techies! It is one of the best re-learning decisions I made in the recent past.

Akshay November 2021

Being form non-CS background and having worked for 6 years in semiconductor domain, I did not have any prior experience of designing/working on large scale systems. When I switched domain, I also decided to take this course and I have enjoyed it throughout the span of 2 months.

It's not just the content of the course but also the way Arpit delivers it. He always starts from day 0 architecture and gradually builds on top of it. There are no buzzwords thrown around or random assumptions made. You will not only learn new things but also get some of your preconceived notions corrected. Also there were many "wow" moments during the course which are invaluable. There are tonnes of YouTube videos on system design but none of them come remotely close to this cohort.

The only negative feedback I have about the course is that it ends.

Mahendhar November 2021

Arpit is a brilliant and passionate engineer who will help you with building the intuition behind each and every system design he discusses. He makes sure everyone understands the problem and also the live brainstorming sessions have good participation. His cohort is attended by brilliant and well accomplished people themselves which makes this cohort all the more valuable.

I can confidently say I lost the fear of system design now because of this cohort.

Jay Vasant November 2021

You might ask, is it HLD, LLD, or the internals of all major systems? It's real engineering at its best, thanks to the precise problem statements which artfully places foundational topics at the core of scalable systems. As a whole it covers all the standard practices along with extensive discussions about approaches so that no doubt remains unresolved.

Thanks to these discussions, I now have a clearer picture of thinking about and observing the recurring patterns in scaling systems better than ever, along with memories of interactions with peers having years of experience and wisdom.

Vaibhav November 2021

One of the best courses i have ever attended. Arpit's knowledge in system design is commendable and his research and composition in this course material is concise and to the point that it provokes several parallel thoughts and gives you a ready to use tool-kit to tackle any types of system.

Most of the system design courses out there mostly talk about company driven architecture such as how Netflix tackled this problem vs how Google handled this. But the beauty of this course is that every class starts with one basic problem statement, common design pattern, different area of concerns( front end, backend, caching, DB), separation of concerns, then deep dive into one of the most relevant and problematic areas you could face in that type of system, how to solve them and then finally go to details about how this use-case could be applicable to these many systems.

This gives you a building blocks to handle any system based on the need rather than sticking to the pre-defined approach about how one leading company did it.

Another best part of this course is the classroom discussions:- 30-40 highly skilled and driven engineers are coming together in one forum, asking questions, sharing their knowledge and discussing system design problems which can not get any better.

Gaurav Jaiswal May 2021

One of the best courses out there on system design. I really liked Arpit’s way of explaining complex problems in simple way. Course Structure is well organised , alongSide you get to learn with amazing set of people. Course Certainly made me a better engineer. I am already using Arpit's teachings at my work.

And the cherry on top - I was able to crack SDE 2 interview at Walmart, Apna, Swiggy, BukuWarung, DealShare.

My best investment ever :)

Kushal Mahajan September 2021

Arpit is a gold standard as an instructor. The discussions are on-ground and will discuss the things which are beyond 101. I have been directly able to map a few lectures ( read use cases ) to my job. I am a frontend engineer and most things are a learning to me. But having experience of system design implementations with me peers, it will surely take an edge.

More than the courses, you will be overwhelmed by his enthusiasm, clarity with breadth and depth. I believe, I have found the person I can look upto and have a chat about the things which actually improve the internet. I will invest anytime in a person which shapes the thinking patterns than just delivering the knowledge.

Kishor Pawar May 2021

First time had the great experience with someone providing online education. Live class interaction really helped. Not only learned from you Arpit, but almost everyone in the class. Not only you learn the concepts from Arpit, but you also learn the way he learns, and it's contagious. One of the best decision I had taken to join Arpit's cohort.

Bhargav September 2021

The system design course by Arpit is a great one for a number of reasons. It covers a wide range of topics, design paradigms and building blocks necessary to build a distributed system. For every system design topic discussed in the sessions, it is built from ground up starting with a simple model (which everyone brainstorms together) which is then iteratively enhanced to overcome limitations until the end design meets all the requirements such as scalability, availability etc. This exercise in my opinion is the most useful thing that I got from the course as it builds such a great intuition when you have to design a complex system from ground up and when you look at some popular distributed systems in use, you will know how they were built or what design patterns might have been used.

Since this is a cohort, you benefit greatly from the discussions that happen during the brainstorming segment of the class where you learn from other people’s diverse experiences and of course the 1:1 sessions with Arpit are invaluable.

Overall, I would highly recommend this course to anyone, at any stage in their careers who is interested in learning how to design distributed systems. This is indeed a fun course.

Preeti Pranayeta September 2021

Course was an eye opening for me with lots of real world experiences that we face while implementing systems.Every session need to be revisited so as to understand effectively.Arpit makes sure to walkthrough the science behind building the system design.I simply loved the course and this implants a curiosity of learning everyday within us.

Harshit Agarwal September 2021

I had initially registered for the 2nd cohort, but did not end up going through with making the payment as I thought it was too expensive. Now, after having finished the course as part of 4th cohort - I think this was probably the best investments I have made in my life !

This course taught me to think of system design from a first principles perspective. It taught me about how to use smaller simple systems as reusable building blocks for larger systems. Arpit's enthusiasm is infectious and he's an excellent teacher. I learnt a lot from not just him but also from other people in the cohort. 👌🏾

Jimit Gandhi September 2021

The breadth of the systems covered as part of Cohort is really amazing. I learned so many systems which I didn't have much clue about earlier like Stream processing, Log Structured storage and many more. The enthusiasm with which Arpit conducts the sessions helps create curiosity.

The most important part is that Arpit helps build the intuition to learn system design and uses building blocks to build systems gradually. This cohort is a value addition for experienced professionals to build Large scale systems and develop know-how for making trade-offs for design choices.

Sai Subramanyam Chittilla September 2021

Arpit is a passionate individual who teaches one of best system design course, his explanation comes from real implementation and exposure to the problem. He makes sure that individuals in his cohort develop critical thinking when approaching system design.

I would highly recommend his course for any one who tries to build systems to scale.

Naman Bhalla September 2021

The way Arpit delivers his content shows his experience, enthusiasm and love for the topics he is teaching. He shares his experience over multiple years of career and reading multiple blogs, papers etc. with everyone. The problem statements discussed are very practical and cover advanced topics related to large scale system design very well.

He takes a pragmatic approach to the problems and comes to the solution via foundational principles. The assignments are quite challenging so be ready for a lot of fun building them!

Anshul Saxena September 2021

Taking this course has turned out to be one of the best things I've ever done in my software engineering career.

Arpit has changed everything for me and helped me to develop intuitions for designing the systems at scale. This course was a perfect mixture of theory that we needs to know for understanding and designing massive systems, and real world examples for implementing those concepts.

This course is not like any other courses out there, its not one way video based communication as it is cohort based, it provides the experience of solving the problem in real world like a team of 45 engineers working together to solve a problem which in itself was a awesome experience .It was a great learning experience for me and would recommend the course to everyone who wants to develop understanding of how massive systems functions.


Who took this course?

Folks belonging to some of the best companies and high thriving startups have taken this course, the list includes the likes of



Program pre-requisites

This is an intermediate-level course on System Design where we build highly available and scalable systems just as they are built in the real world. To take up this course, you need to have a basic understanding of building systems - either through being hands-on at work or by going through the System Design videos available on YouTube. It will also help if you have a basic knowledge of at least one public cloud like AWS, GCP, Azure, or Digital Ocean.

I have created this playlist of videos that would give you a good headstart for this course. Feel free to go down the rabbit hole and explore in detail the tech mentioned in the playlist.




Frequently asked questions

You can always drop me an email at arpit.masterclass@gmail.com for other questions.


Is this course right for me?

This course is for any engineer who wants to learn System Design. The program is most suited to someone who has some industry experience, at least 6 months.

Will you be giving teaching for the entire duration?

Yes. I will be teaching the entire course online and live over Zoom and will be providing feedback and 1:1 mentorship.

Will there be a class every day?

The Live Classes will happen on Saturdays and Sundays 4-6:30 pm IST with a possible extension of 30/45 mins.

Can I get this course reimbursed from my company?

Talk to your manager and check if they can sponsor this course. The invoice that will be issued is a legally valid and sound invoice that can be used for any kind of reimbursement.

Will there be reserved slots for 1:1 mentorship?

1:1 mentorship calls will happen on-demand, just drop me a message a day prior, and I will get our call scheduled.

Will there be assignments and hands-on projects?

Apart from Live Classes on weekends, there will be multiple assignments and projects ensuring you apply what you learn. Unfortunately, due to time constraints, the evaluations of assignments are not possible, but I highly encourage you to implement all the assignments and seek help during 1:1 sessions.

Will the course cover LLD?

The course will cover some aspects of Database Design and its internals, but it will not cover writing and designing classes, and low-level design patterns. The course is typically aimed at covering the massive spectrum of System Design and Software Architecture.

Are assignments and projects mandatory?

No. But it is advisable that you complete them to get a better understanding of the system, algorithm, and business logic.

Will we also implement and see the systems in action?

Due to time constraints, it is not possible to implement every system; it is recommended that you self-implement the system and understand the low-level details. The course will definitely cover systems from every aspect.

Will there be a recording available for future reference?

Every single Live Class will be recorded, and you will be given lifetime access to it.

Is there a refund policy?

14 days (from the course commencement) is the window within which you can claim a full refund (excluding GST). GST paid will not be refunded. All refunds will be processed on the 14th day from the course commencement date.

Where are the classes conducted?

All Live Classes will be online, over Zoom, and all you need is an internet connection to attend the live sessions.

Who you be the only one teaching this course?

The entire course including Live Classes will be conducted by me, Arpit Bhayani, no external TAs, mentors, etc. You will get to learn everything from the horse's mouth.

What are the programming pre-requisites?

It would help if you had to have work experience of 6 months, plus a basic understanding of one of the cloud providers like AWS, GCP, plus some basic understanding of high-level system design by watching already available YouTube videos. You can also find a few videos on this ppage that I would recommend you through.

How is this course different from free videos on YouTube?

This cohort-based course aims to be live, intense, and interactive. Traditional MOOCs (existing videos on the internet) cannot offer these benefits as they are unidirectional and optimizes for one-to-many. With this course being taught live, you can get instant resolution to your doubts. The discussion, collaboration, and networking will have a major impact on your overall learning as there will be cross-pollination of information.

If I have already watched System Design videos on YouTube, is this course still helpful?

Yes. The kind of depth which is touched in this System Design is unmatched. Even if you have watched all the System Design videos out there, you will still have moments that will blow your mind.

Will I be getting an invoice of Payment?

Yes. An invoice will be issued to you with all the legal and necessary details. This means your employer can choose to process this invoice and provide reimbursement.

Will you issue a course completion certificate?

I do not generate the certificate for every candidate, but if you need it, just drop me a message, and I will issue one right away.

Can I use my Credit Card or avail EMI to make the payment?

Yes, we support Credit Card, Debit Card, UPI, and Credit Card based EMIs having a duration of 3 months, 6 months, 12 months, and 24 months as offered by Razorpay.

Will I get access to videos and resources of past cohort?

No. You will get access to all the live sessions happened in your enrolled cohort only.