1. Avoid detailing early. 2. Avoid silver bullets. Don’t have a set architecture in mind. There’s no single architecture that’ll fit everywhere. 3. K. I. S. S. Keep it simple and stupid. The more details you get into one component, the narrower your view is. Take a step back and take a look at the entire architecture. 4. Form your thoughts. Avoid speaking without thinking the point through. 5. Be tech aware.
Hey Gaurav, How to make one self tech aware. For Eg: I am aware partially about few things : elastic, RabbitMQ, HDFS, Azure, Spark. But I am not sure about say: postgresql / LB / NoSql / zookeeper. How can I learn to apply something in a design question if I don't know that side of designing part at all. I cannot go about learning every other technology out there. Can I ?
0:13 Avoid detailing early 2:38 Avoid silver bullets 3:54 K.I.S.S. 5:13 Form your thoughts 6:20 Be tech-aware 7:16 Three pillars: clarity of thought, flexibility, knowledge
Do not go into details prematurely Don't have a set architecture in mind (avoid silver bullets) KISS Don't make points without justification (tell why, form your thoughts) Be aware of current technologies (existing off-the-shelf solutions)
its so important to pause...this is the key to crack interviews...most of us (i would say most of indian friends) just get carries away...made this mistake several times..thanks for highlighting.
I love this Indian guys who help others to learn basic all subjects. Unfortunately, sometimes it is too hard to understand their accent. However, keep teaching! :D
For benefit of others. Cheers Gaurav ! 0:19 Donot go into detail, Prematurely 2:41 Don't have a set architecture in mind 3:55 Keep it Simple Stupid 5:14 Donot make points without justification ( always have a why ) 6:21 Be aware of current technologies ( so you can name them )
typically I don't leave comments but you've such a great job!!!! You should be proud. A minor request, please don't have your camera setting in auto-focus you were constantly in/off of focus.
Thank you so much for this video, even if it's a few years later! I recently passed Google's phone interview (to my surprise too), and now I'm studying DSA and Systems design like never before! I tried a few years back to crack this interview process, but now it's much different :)
Dude the explanation was great, really helpful but that attitude, full of energy, good vibes, talking like if we were in front of you is so awesome, really great content.
Really good advice. Thanks a bunch for the well thought out tips. Also, thank you very much for using a microphone attached to you and not the microphone on your camera. I can't handle presenters who have an echo.
This is great! I like the way how you fast forward the unwanted part, and focus on core things. A small request regarding all your videos, whenever you explain any concept please solve a problem with real world example. it helps a lot in understanding in more depth
Wonderful! Coherently spoken and conveyed the thoughts lucidly. PS: Your Directi T-shirt sent me down the memory lane of my good ol Directi days. Cheers!
Excellent Video Gaurav. Awesome explanation and good problem solving insights. I would like to add a few insights as far as software architecture is concerned. System Design is an art that carefully balances the user requirements and in-production quality attributes needed for a system to work and function properly. It is important to focus on a few design patterns and architecture level tatics that help in achieving scalability, good response time, reuseability and other architectural quality attribiutes that ultimately decide on system performance. There is always a tradeoff between the best possible architecture and the most feasibile one given one meets the timeline and cost of delivering an architecture. Arguing why one deisgn pattern works better over others in something that can really help in solving system design problems through iterative designing. Given a problem and a bunch of functional requirements, we need to come up with an architecture that meets quality and production requirements. Is layered architecture better? Should it be MVC? Will decorator pattern work better? Is a broker arbitration needed? Can we use pub-sub? and many more are just simple questions that one should be able to answer given a design problem? Does is scale? What is the response time? Is there fault tolerance? Is the deployment hassle free? Can it CD/CI? These are just points to ponder. Draw a module and connections diagram view, ask yourself, does it work why? why not? Can there be other tradeoffs. The list continues.
Amazing Job! You have done an excellent job of explaining the different components of System Design and I loved the fact that you use a whiteboard to cover your topics. Brilliant.
thanks for the crisp and smooth explanation. Should we keep the fact in mind that interviewer might add an additional feature in between you're designing the system components?
Thanks for the tips, helps a lot. You might want to turn off auto-focus to avoid so much of focus breathing. F4 (or above), manual focus once before start should be perfect!
Your explanation style is wonderful! Can you provide a full course on fundamentals and how to implement them on practical problems for system design newbies like me?!
@@gkcs for me your tinder video was the best as it was quite easy to understand because you went into minute details of the microservices (& probably because of its relatively simpler architecture as compared to instagram/whatsapp too). I understand going into too much details takes time (& sometimes focuses away from the problem at hand), but that's the only way to build base concepts..there goes my suggestion for you!!
Wow, that's probably the only good thing this virus has done lol. You can try the system design course now. It a little more advanced than the playlist you crushed in two days :P get.interviewready.io/courses/system-design-interview-prep
When you talk about gateways, what do you prefer? Can you share some insights ? Also why should we have a gateway ? We can have something like Akamai etc
Thanks Gaurav! I think you might improve on your video quality by turning off the automatic focus and automatic exposure, noticed it in a few of your videos.
Hey Gaurav, these sessions are so helpful. Do you have plans to create content specific to product managers? For example, help product managers crack the system design interview.
Hi Gaurav, Congrats for UBER job offer, thats a huge achievement, definitely a big step forward in your career. I really wish you continue with this channel as well though.. :) If you do, can you please prepare and share some videos in the area of caching? i.e. cache expiry, cache invalidation, approaches to solve cache size constraints, cache eviction? basically everything in the area of caching from a backend engineer perspective. Thanks in advance! best of luck for UBER!
"Be aware of the current solutions and tech practices" and "Stay up to date with the current solutions in the market. " What online publications do you recommend to follow? Besides your interviewready course and your awesome youtube videos, of course! :)
A doubt/request for the 5th point. I'm a final year student btw. Being aware of these technologies is great as you already mentioned. But you also said that there should be a reasoning for such examples. What if I say that we can use Kafka or RabbitMQ for Message Queues/Event handling, but they start asking me about these technologies? Tbh, I haven't worked upon them and just know about them as examples. Also, if one should know at least a bit of every thing, then can you please provide some link(s) to better understand these technologies, but quickly? It'll be great! Also thanks for such amazing videos! Keep rocking as always!
Good points Krishn, the examples should be backed with some understanding on how they work. I'd suggest mentioning how much you know of the technolgies while taking them as examples. That way the interviewer knows that you are aware of 'off the shelf' solutions, but not necessarily their internal workings.
Thx for posting this video Gaurav. It was very helpful. Quick question: for point no. 4, can the pets and cattle analogy be used when answering a systems design question? This doesn’t mean however that we forget point no. 5.
Amazing video this one is. Kudos. I just wanted to ask that I'm a final year B.Tech student applying for an Amazon interview soon. Should I expect system design related questions?
6:20 Hi Gaurav - thanks for these tips ; will definitely make sure to define the network protocols and services properly. My only reservation is with regards to current technologies : I may not be fully aware of them ( e.g. what the tech used for load balancers is ) or may bring in something older ( e.g. IBM MQ Server instead of RabbitMQ ) in lieu of abstractions . Any suggestions for what to do here?
Hey Gaurav, plz can u make a video for designing a shopping cart .where there will be different classes . Also there will be different kinf of coupons which can be applied on the final amount of the cart. if there exist anf soucr for such use cases plz help
Any tips for System design interviews for frontend developer s please..i often get confused if interviewer expects backend system design in detail for frontend developer s @gaurav sen
1. Avoid detailing early.
2. Avoid silver bullets. Don’t have a set architecture in mind. There’s no single architecture that’ll fit everywhere.
3. K. I. S. S. Keep it simple and stupid. The more details you get into one component, the narrower your view is. Take a step back and take a look at the entire architecture.
4. Form your thoughts. Avoid speaking without thinking the point through.
5. Be tech aware.
Hey Gaurav,
How to make one self tech aware.
For Eg: I am aware partially about few things : elastic, RabbitMQ, HDFS, Azure, Spark. But I am not sure about say: postgresql / LB / NoSql / zookeeper.
How can I learn to apply something in a design question if I don't know that side of designing part at all.
I cannot go about learning every other technology out there. Can I ?
KISS actually stands for Keep it simple, stupid.
@@millennial_rants Well, you will have to read more about these technologies and what problems they are meant to solve.
@@millennial_rants I have the same query. Thanks for asking
Thanks for the homework :)
0:13 Avoid detailing early
2:38 Avoid silver bullets
3:54 K.I.S.S.
5:13 Form your thoughts
6:20 Be tech-aware
7:16 Three pillars: clarity of thought, flexibility, knowledge
Do not go into details prematurely
Don't have a set architecture in mind (avoid silver bullets)
KISS
Don't make points without justification (tell why, form your thoughts)
Be aware of current technologies (existing off-the-shelf solutions)
Thanks
2.5 years later this is still G.O.A.T. level material
In 2024 , also I feel this will definitely build foundation of system design
You're one of the best tech speakers I've come across. Clear, passionate, and knowledgable. Great stuff - keep it up!
Thank you 😁
its so important to pause...this is the key to crack interviews...most of us (i would say most of indian friends) just get carries away...made this mistake several times..thanks for highlighting.
I love this Indian guys who help others to learn basic all subjects.
Unfortunately, sometimes it is too hard to understand their accent.
However, keep teaching! :D
Excellent! Clearly, concise, and to-the-point. I recommend everybody preparing for a SD interview spend 8 minutes to watch this.
For benefit of others. Cheers Gaurav !
0:19 Donot go into detail, Prematurely
2:41 Don't have a set architecture in mind
3:55 Keep it Simple Stupid
5:14 Donot make points without justification ( always have a why )
6:21 Be aware of current technologies ( so you can name them )
typically I don't leave comments but you've such a great job!!!! You should be proud.
A minor request, please don't have your camera setting in auto-focus you were constantly in/off of focus.
Thanks! I'll make sure I don't next time 😋
Thank you so much for this video, even if it's a few years later! I recently passed Google's phone interview (to my surprise too), and now I'm studying DSA and Systems design like never before! I tried a few years back to crack this interview process, but now it's much different :)
Ooo
Dude the explanation was great, really helpful but that attitude, full of energy, good vibes, talking like if we were in front of you is so awesome, really great content.
Really good advice. Thanks a bunch for the well thought out tips. Also, thank you very much for using a microphone attached to you and not the microphone on your camera. I can't handle presenters who have an echo.
This is great! I like the way how you fast forward the unwanted part, and focus on core things. A small request regarding all your videos, whenever you explain any concept please solve a problem with real world example. it helps a lot in understanding in more depth
Thank you!
I'll keep this in mind 😋
Very crisp and great content about attitude needed for an interviewee attending for system design interview
Your videos are amazing .. great to see how you learnt so much at this young age
Wonderful! Coherently spoken and conveyed the thoughts lucidly.
PS: Your Directi T-shirt sent me down the memory lane of my good ol Directi days. Cheers!
Thanks! Cheers! 😁
Fellow Directian here too!
Wow, such clear explanation, so many videos out there, but no one makes them sound simple as you do. Keep up the good work.
Looks like some one has been prepping up his game for the past few days 😉. (SDE-2 huh)
Incase yes, I wish you all the best!!
Hahaha :)
Excellent Video Gaurav. Awesome explanation and good problem solving insights. I would like to add a few insights as far as software architecture is concerned. System Design is an art that carefully balances the user requirements and in-production quality attributes needed for a system to work and function properly. It is important to focus on a few design patterns and architecture level tatics that help in achieving scalability, good response time, reuseability and other architectural quality attribiutes that ultimately decide on system performance. There is always a tradeoff between the best possible architecture and the most feasibile one given one meets the timeline and cost of delivering an architecture. Arguing why one deisgn pattern works better over others in something that can really help in solving system design problems through iterative designing. Given a problem and a bunch of functional requirements, we need to come up with an architecture that meets quality and production requirements. Is layered architecture better? Should it be MVC? Will decorator pattern work better? Is a broker arbitration needed? Can we use pub-sub? and many more are just simple questions that one should be able to answer given a design problem? Does is scale? What is the response time? Is there fault tolerance? Is the deployment hassle free? Can it CD/CI? These are just points to ponder. Draw a module and connections diagram view, ask yourself, does it work why? why not? Can there be other tradeoffs. The list continues.
Thanks Gaurav ji
Hi,
I saw your couple of videos, it’s really fantastic. It is really useful. Good energy while delivering the lecture. Keep it up.
Big thanks to you man. Your informative videos I was able to crack many big interviews 🙏🏻
Great job!
Amazing Job! You have done an excellent job of explaining the different components of System Design and I loved the fact that you use a whiteboard to cover your topics. Brilliant.
If I could like this video 100 times, I would. All great suggestions!
Thanks Gaurav for the awesome video!!
You Will hit a million subscribers soon.
thanks for the crisp and smooth explanation.
Should we keep the fact in mind that interviewer might add an additional feature in between you're designing the system components?
Thank you so much for an amazing video Gaurav
Thank you for the discussion. I was also looking for the Failure Criteria!
Thanks for the tips, helps a lot.
You might want to turn off auto-focus to avoid so much of focus breathing. F4 (or above), manual focus once before start should be perfect!
This is really informative, well done!
Thank you 😁
The amount of value in this video is incalculable.
Your explanation style is wonderful! Can you provide a full course on fundamentals and how to implement them on practical problems for system design newbies like me?!
I am working on a course. Suggestions always help 😁
@@gkcs for me your tinder video was the best as it was quite easy to understand because you went into minute details of the microservices (& probably because of its relatively simpler architecture as compared to instagram/whatsapp too). I understand going into too much details takes time (& sometimes focuses away from the problem at hand), but that's the only way to build base concepts..there goes my suggestion for you!!
Set the camera focus and leave it in manual, so its not constantly hunting and trying to autofocus as you move around. :)
I finally got this trick in the most recent video, thanks!
thanks for this video, excellent tips!
Very helpful tips, thank you Sir!
@gaurav : At 1:12 the advice is gold
Thank you!! This was super helpful
Like ur T-shirt.
It's true when ur doing the thing you want to do.
Thanks Gaurav! You are really nice to share this information. I want YOU in my team :)
Done with all the 23 videos in just two days (Thanks to corona😂)!... what do I do now??? Thanks for the videos, you are just awesome!🤩
Wow, that's probably the only good thing this virus has done lol.
You can try the system design course now. It a little more advanced than the playlist you crushed in two days :P
get.interviewready.io/courses/system-design-interview-prep
Very beautifully explained the things, You slayed it :) Keep it up Gaurav.
Wow I wish I could be as good as you are in these interviews
Outstanding video !!
Eagerly waiting for your next video about system design from scratch. It will definitely give a idea about how to start thinking for novice. :)
Thanks Sugyan!
Dude you're a beast man! Great job and thanks for this!!
When you talk about gateways, what do you prefer? Can you share some insights ? Also why should we have a gateway ? We can have something like Akamai etc
Gateway here is being referred to the Load Balancer you would have for your system. It is important for many reasons to make your system efficient.
Hi Gaurav, Can you please do a video on UBER system design and Facebook System design, your video is super helpful and understanding!
You, sir, are awesome !
Thanks Gaurav! I think you might improve on your video quality by turning off the automatic focus and automatic exposure, noticed it in a few of your videos.
Yes, thanks!
Very useful. Thanks for sharing
Hey Gaurav, these sessions are so helpful. Do you have plans to create content specific to product managers? For example, help product managers crack the system design interview.
6 years and still no competition ❤
Thank you!
These tips can be used for a conversation too
Great tips. Hopefully, you started disabling auto-focus after this video 😊.
where did you get that shirt from? love it
Ha ha, wish I would have watched this before my interview.
Very nice video, thank you.
Hi Gaurav, Congrats for UBER job offer, thats a huge achievement, definitely a big step forward in your career. I really wish you continue with this channel as well though.. :) If you do, can you please prepare and share some videos in the area of caching? i.e. cache expiry, cache invalidation, approaches to solve cache size constraints, cache eviction? basically everything in the area of caching from a backend engineer perspective. Thanks in advance! best of luck for UBER!
I'll get to this too :)
Wish I had seen this before my Amazon interview today 😂😂😂😅
Can you please create a Video for Recommendation System.
Awesome tips !
Thank you!
Great stuff! Well explained 👌
Thanks a million!
Really great content...:). Thank You Gaurav
Thanks Archi!
Thanks Gaurav....very informative
Nice shirt, Work is Play..
It motivated me.
😁
Hi Gaurav,
Thanks for you tutorials , which are very helpfull .
could you make tutorial on when we go for Sql and NoSql
Hi Sravan! Sure 🙂
You should read about CAP theorem
Maqbool thank you
"Be aware of the current solutions and tech practices" and "Stay up to date with the current solutions in the market. " What online publications do you recommend to follow? Besides your interviewready course and your awesome youtube videos, of course! :)
I love the blogs on highscalability.com/ and the book "Designing Data Intensive Applications" 😁
Hi Gaurav, will there be more videos about system design coming up? Loved all the videos on your system design playlist so far.
Yes there will :D
Coming up this weekend, I think ;)
Hey man, I love it
sir...please make video on hamiltonian paths and cycles.
A doubt/request for the 5th point. I'm a final year student btw.
Being aware of these technologies is great as you already mentioned. But you also said that there should be a reasoning for such examples. What if I say that we can use Kafka or RabbitMQ for Message Queues/Event handling, but they start asking me about these technologies? Tbh, I haven't worked upon them and just know about them as examples.
Also, if one should know at least a bit of every thing, then can you please provide some link(s) to better understand these technologies, but quickly? It'll be great!
Also thanks for such amazing videos! Keep rocking as always!
Good points Krishn, the examples should be backed with some understanding on how they work.
I'd suggest mentioning how much you know of the technolgies while taking them as examples. That way the interviewer knows that you are aware of 'off the shelf' solutions, but not necessarily their internal workings.
@@gkcs I absolutely agree. Being honest is better than faking out on such crucial moments.
Thanks once again! :)
What interviewer means when he asks - " tell me the components of your system". What is meant by component in a system design interview?
The modules or parts of your system.
Usually means, tell me the microservices being used :)
Thaaank u so much
Thank you!
Hi gaurav, one question does system design interview have coding round?
Very impressive, bravos!
I became subscriber without subscribing your channel 🙂
Thx for posting this video Gaurav. It was very helpful. Quick question: for point no. 4, can the pets and cattle analogy be used when answering a systems design question? This doesn’t mean however that we forget point no. 5.
I wouldn't use the phrase, although it does sound cool.
thanks yaar. good video!
Amazing video this one is. Kudos. I just wanted to ask that I'm a final year B.Tech student applying for an Amazon interview soon. Should I expect system design related questions?
Thanks!
Freshers are not expected to know about System Design :)
@@gkcs Thank you so much for the response.
Awesome gaurav. can you add the system design for twitter?
Can we have one video for enterprise integration design?..however, thanks for the nice videos 😀
6:20 Hi Gaurav - thanks for these tips ; will definitely make sure to define the network protocols and services properly. My only reservation is with regards to current technologies : I may not be fully aware of them ( e.g. what the tech used for load balancers is ) or may bring in something older ( e.g. IBM MQ Server instead of RabbitMQ ) in lieu of abstractions . Any suggestions for what to do here?
So energetic and smiley
Gaurav, in your paid course wouild you be adding more system design use cases, e.g. design Uber, design a monitoring system, design youtube, etc
There are more chapters on the way, yes.
By client, you are referring to the front end right? Are servers the same as API?
GOLD Points
Really great thanks is not enough
@Gaurav Sen - Great video, just one comment though: camera's adjusting focus again and again muliple times throughout the video. Very annoying :P !!!
Hi Hemant! I know, hated that too. Will make sure the focus is fixed next time!
Hey Gaurav,
plz can u make a video for designing a shopping cart .where there will be different classes . Also there will be different kinf of coupons which can be applied on the final amount of the cart. if there exist anf soucr for such use cases plz help
Thank you very much :)
very good video
Could you please discuss system design for Google calender?
Bro your voice is too gud
could you do the same with a real world example?
love the video
I want to learn system design could u explain different kinds of questions
Any tips for System design interviews for frontend developer s please..i often get confused if interviewer expects backend system design in detail for frontend developer s @gaurav sen
also a negative point is not to repeat the same thing over and over