I think this video provides a solid foundation for what to think about and how to structure your time. To add to this knowledge, and as an occasional interviewer, I would recommend emphasis on thinking about why you are there and what skills the interviewer is looking for. As an interviewer I'm less interested in the actual design and more interested in how you approach the situation - what questions you ask, what assumptions you make, how you deal with ambiguity, what your problem solving skills are like, and so on. Seeing you draw things on a whiteboard - and explain them - also gives me insights into how you communicate, which is also critical. I think this video possibly gives the impression (to some people) that you have to come up with a carefully considered design which is comprehensively complete and to a level of detail that is probably impossible to do in 35 minutes - especially if too many features are requested. One way to deal with that is to take a "steel thread" like approach and demonstrate how something could work end-to-end without going into all the details - just enough to join all the layers, not fill them all in. For example, if you can demonstrate what one REST API operation looks like to some level of detail, as an interviewer I probably don't need to see a second example - that's where checking in with the interviewer is a good idea - is that one enough? would they like to see more? Remember, (perhaps depending on the level of seniority) the interviewer might be looking to see how you handle a situation where the work requested is clearly not doable in the time allocated - what techniques do you use to deal with those situations? Checking in with the interviewer as to what they expect is a valid approach - just like (good) team leads and managers appreciate team members checking in with them periodically, especially when timeframes are tight.
I like this and find it helpful, but I'm also a person who does well learning by example. I realize it would be a very different video from your normal format, but it would be pretty cool to do a full ~1hr example interview which showcases this in practice.
My MIS BSBA was instrumental in Systems Analysis and Design, and although it gave me a great overview… It is videos like these I go to for more in-depth and situational knowledge for System Design and Software/Database development. Thank you for publishing resources like these.
Really really awesome video. Would really appreciate it if you could make a video on some examples/scenarios and which technology to use in those cases. You have covered some really good cases, especially related to DBs in ur channel. In particular I was looking for when to and not to use message queues and their challenges and limitations. Thanks.
It requires multiple knowledge on many areas. Senior engineer is different from solutions architect. It is similar to medicine and in medicine you are becoming more experienced on an specific area. But today, every body urges software developers/engineers to become expert on many areas... it is insane.. we are human, not a machine...
true, but the breadth of knowledge you have is a good indicator of how many situations you’ve worked on and how experienced you are. Which is why these Interviews aren’t usually done for junior engineers
Agree, insanity & stupidity has no boundaries in this so call educated society. And that's why reality is quite different than these interviews and many interview ready & not job ready people are hired, even by Big companies like Google, Adobe, Atlassian and then management wonders that why costs are getting higher.
To be honest if you want to be a software engineer forget about having a low stress career where you can cultivate depth in one domain. This SWE career is all about hustling, learning as things keep changing, sucking up to the latest technologies, struggling to stay relevant, ignoring your health and mental well being, ignoring your higher pursuits such as a social life, having family or kids, or doing something worthwhile that is helpful to society or the upliftment of those who are doing badly in life. If you are a software engineer who is interviewing and has to do a system design interview, assume that you will never get it right. The field is lopsided and unfair to anyone who wants to explore anything broader than specific software technologies.
Thanks for putting a thought framework. This will be very useful not only for active job seekers but to any engineers who is solving complex problems. It would be great, if you can make a video with a specific example.
I feel like technical interviews are broken and no matter how much you prepare you're always going to have to deal with a random interviewer who may not even be that focused or someone who is biased etc.
Exactly, like when for my most important interview ever they went for the DEI hire (an ex Russian ballet) instead of me, the one with the Computer Science Engineering degree and professional exp. Thank you germany, I see why Europe will always be behind the USA
In Europe, complete idiots are taking system design interviews they are not senior, and they don't know anything and later they reject u for completely stupid reasons. what a joke Europe has become.
I'm sorry about your experience, but Russians usually don't fall under the DEI category. Also Russian ballet dancers are extremely hardcore, they have incredible work ethic, so I'd not be surprised to find a ballet dancer becoming hypercompetent in a new chosen field.
Step 1: capture features and NFR Step 2: propose APIs, high level diagram, data model Step 3: Dive into specific implementations. Articulate problems and propose solutions. Step 4: Wrap up
Your Presentation always is well above others. What software you used for these animations. Very Impressive and a Perfect one. If possible share which software you use for animations and Drawings.Thanks
@@NhatNguyen-bn9lc And that's by design. New grads are not expected to answer system design questions. On the other hand, if you worked with enough large projects, you are supposed to know all those without preparation. We are just cutting corners here.
@@Mark-rt6fy maybe new grads do not need to know all in detail but they should have an overview of system design. At least it can help them quickly search document for solution
I'm not sure why data modeling is after defining APIs. The APIs are about the input and output, which are further dependent on data models. If this makes sense, shouldn't we do data models before defining APIs?
Agreed. I guess that in today's setting, "API first" is a successful idea, so it's not a bad place to start if you are lost, which might be why they suggest it. I find that there's often a design aspect (like data, integration or functionality) that is the the natural leading aspect for a given situation - which makes that the best place to start. E.g. sometimes you might be designing/architecting for an existing system, where the data design already exists, and the APIs need to build on that. Other times (say with a green field design) you might want to start with the API design and have that lead the rest of the design including data; this might especially be the case if you need to co-design the API with people who are API consumers.
With unlimited horizontal scalability snd replication how do non functional requirements matter. Only thing we can design is for horizontal scalability.
Non-functionals requirements -> system quality attributes. System quality attributes are attributes that describe the qualities the systems has or should possess - including usability, security, availability, maintainability and much more. Non-functional requirements are specific (and ideally testable) requirements that focus on system quality attributes. Regarding horizontal scaling and replication - whilst it's true that could computing makes them much easier to use, it doesn't mean that you always get value from them for free - there's often some trade-offs involved, even if it's only additional complexity.
Could you please show in an example video plz? I read one of your sys design books. It is a great reference book but it's difficult to simulate the interview session by just reading it.. Can you show by doing a 45-minute session, how you put this methodology into practice?
Hi..thank you so much for your great contribution and explanation..small request.. could you do system design video for cabs and ticket vending machines as those r asked recently in one of my interviews
One time I interviewed with Facebook for a Web Front End role. The interviewer asked me to design a Google Search server infrastructure, with load balancing, and how many servers are needed, etc. I think that's the summit of human intelligence
Most important point : Never jump to directly into HLD creation step. instead ask the requirements and functional and non functional both to get the short idea of scope and than built it accordingly. take your time and discuss
Sir at what point in your design cycle do you handle data modeling. You example is more a tech use case. If you took a typical IT org, we have complex data models. We find many new comers these days think of API to satisfy requirements and mostly ignore the core data/object model. As a result, we do not model data properly and end up with redundant tables or data structures
if interviews are stressful, fix them....software industry is the only industry where a candidate has to prepare for the interview...does a surgeon has to prepare for his/her surgery skills when he/she looks to change a job, or does a truck driver has to hone his driving skills when he goes for an interview...
The Asian dude on the video said this interview “might” be stressful, not that it’s broken. I’m in this industry, and we don’t have licensing or certification requirements to get the right people for the business objectives. This is like 45 mins or 1 hour that is all you have before ramping up someone for 6 months to a year before seeing what’s up.
Fact 1 - System Design interviews are never open ended. These are always biased. Fact 2 : Most interviewers are themselves not right fit to take such interviews. Fact 3 : Forget about any such Framework, if the interviewer doesn't like you, you can never succeed. Fact 4 : Scope of such problems is always bound to the scope of interviewer's understanding. Rest such videos are always good to watch and learn new things. And these interviews has caused such videos industry flourish to help people make their money. So no-one of these people would like to change these interviews' pattern and many candidates can continue to stuck in wild goose chase.
System design interviews now a days feel more like a practiced choreography. Interviewer and interviewee dancing rhythmically. One missed step and its gone. Whether you worked and used the technology you are proposing in your design doesn't matter and pretending that you are an expert in it is an art in itself.
I think this video provides a solid foundation for what to think about and how to structure your time. To add to this knowledge, and as an occasional interviewer, I would recommend emphasis on thinking about why you are there and what skills the interviewer is looking for. As an interviewer I'm less interested in the actual design and more interested in how you approach the situation - what questions you ask, what assumptions you make, how you deal with ambiguity, what your problem solving skills are like, and so on. Seeing you draw things on a whiteboard - and explain them - also gives me insights into how you communicate, which is also critical.
I think this video possibly gives the impression (to some people) that you have to come up with a carefully considered design which is comprehensively complete and to a level of detail that is probably impossible to do in 35 minutes - especially if too many features are requested. One way to deal with that is to take a "steel thread" like approach and demonstrate how something could work end-to-end without going into all the details - just enough to join all the layers, not fill them all in. For example, if you can demonstrate what one REST API operation looks like to some level of detail, as an interviewer I probably don't need to see a second example - that's where checking in with the interviewer is a good idea - is that one enough? would they like to see more? Remember, (perhaps depending on the level of seniority) the interviewer might be looking to see how you handle a situation where the work requested is clearly not doable in the time allocated - what techniques do you use to deal with those situations? Checking in with the interviewer as to what they expect is a valid approach - just like (good) team leads and managers appreciate team members checking in with them periodically, especially when timeframes are tight.
I like this and find it helpful, but I'm also a person who does well learning by example. I realize it would be a very different video from your normal format, but it would be pretty cool to do a full ~1hr example interview which showcases this in practice.
NeetCode has a few of those in the meantime:
ruclips.net/video/o5n85GRKuzk/видео.html
the smooth animation and clear structure of presentation are incredibly amazing, thanks for presenting such quality video
My MIS BSBA was instrumental in Systems Analysis and Design, and although it gave me a great overview… It is videos like these I go to for more in-depth and situational knowledge for System Design and Software/Database development. Thank you for publishing resources like these.
Thank you for this, I got asked about non functional requirements in an interview and had never heard that term. This clarified that for me!
Really really awesome video. Would really appreciate it if you could make a video on some examples/scenarios and which technology to use in those cases. You have covered some really good cases, especially related to DBs in ur channel. In particular I was looking for when to and not to use message queues and their challenges and limitations. Thanks.
It requires multiple knowledge on many areas. Senior engineer is different from solutions architect. It is similar to medicine and in medicine you are becoming more experienced on an specific area. But today, every body urges software developers/engineers to become expert on many areas... it is insane.. we are human, not a machine...
true, but the breadth of knowledge you have is a good indicator of how many situations you’ve worked on and how experienced you are. Which is why these Interviews aren’t usually done for junior engineers
Agree, insanity & stupidity has no boundaries in this so call educated society.
And that's why reality is quite different than these interviews and many interview ready & not job ready people are hired, even by Big companies like Google, Adobe, Atlassian and then management wonders that why costs are getting higher.
To be honest if you want to be a software engineer forget about having a low stress career where you can cultivate depth in one domain. This SWE career is all about hustling, learning as things keep changing, sucking up to the latest technologies, struggling to stay relevant, ignoring your health and mental well being, ignoring your higher pursuits such as a social life, having family or kids, or doing something worthwhile that is helpful to society or the upliftment of those who are doing badly in life. If you are a software engineer who is interviewing and has to do a system design interview, assume that you will never get it right. The field is lopsided and unfair to anyone who wants to explore anything broader than specific software technologies.
Thank you. I know nothing about system Design. But this video gave me a good understanding of it.
Thanks for putting a thought framework. This will be very useful not only for active job seekers but to any engineers who is solving complex problems. It would be great, if you can make a video with a specific example.
Alex sir's videos make these concepts look amazingly simple and clear 🔥
Awesome! One thing I see missing is “delegation” of tasks. For example on the DB performance, network etc at least during the deep dive.
I feel like technical interviews are broken and no matter how much you prepare you're always going to have to deal with a random interviewer who may not even be that focused or someone who is biased etc.
This is what I have experienced as well.
Exactly, like when for my most important interview ever they went for the DEI hire (an ex Russian ballet) instead of me, the one with the Computer Science Engineering degree and professional exp. Thank you germany, I see why Europe will always be behind the USA
In Europe, complete idiots are taking system design interviews they are not senior, and they don't know anything and later they reject u for completely stupid reasons. what a joke Europe has become.
I'm sorry about your experience, but Russians usually don't fall under the DEI category. Also Russian ballet dancers are extremely hardcore, they have incredible work ethic, so I'd not be surprised to find a ballet dancer becoming hypercompetent in a new chosen field.
@@S5Dic09lmao loser.. mentality
You are the best when it comes to System Design. Thanks so much!
Step 1: capture features and NFR
Step 2: propose APIs, high level diagram, data model
Step 3: Dive into specific implementations. Articulate problems and propose solutions.
Step 4: Wrap up
Your Presentation always is well above others. What software you used for these animations. Very Impressive and a Perfect one. If possible share which software you use for animations and Drawings.Thanks
Please reply ..Wish to know the tools
7:18 - -what is meant by 'Each feature is complete end to end', that too in High Level Design?
The animations are amazing and on point. Great work!
It's crazy to me that they don't teach any of this in universities. They are so far behind real world issues.
I thought that even the lecturer does not know that.
Companies know this, and thus asking design problems to reflect candidates' work experience
@@Mark-rt6fy big problem for student taught by inexperienced lecturers
@@NhatNguyen-bn9lc And that's by design. New grads are not expected to answer system design questions. On the other hand, if you worked with enough large projects, you are supposed to know all those without preparation. We are just cutting corners here.
@@Mark-rt6fy maybe new grads do not need to know all in detail but they should have an overview of system design. At least it can help them quickly search document for solution
Amazing video! Thank you for your clear and calm explanations. I really appreciate the effort put into the animations as well. Well done!
I'm not sure why data modeling is after defining APIs. The APIs are about the input and output, which are further dependent on data models. If this makes sense, shouldn't we do data models before defining APIs?
Agreed. I guess that in today's setting, "API first" is a successful idea, so it's not a bad place to start if you are lost, which might be why they suggest it.
I find that there's often a design aspect (like data, integration or functionality) that is the the natural leading aspect for a given situation - which makes that the best place to start. E.g. sometimes you might be designing/architecting for an existing system, where the data design already exists, and the APIs need to build on that. Other times (say with a green field design) you might want to start with the API design and have that lead the rest of the design including data; this might especially be the case if you need to co-design the API with people who are API consumers.
@@MorphologicalGeek thank you!
How valuable are these videos! They should be taught at the university.
congrats to the video editor, he did a very good job
How do you make such type of videos ?? ... specially interested in diagrams ... rotating diagrams ?? Any tool ? Pls suggest
illustration looks great, What is the tool that is used to design these illustration/ppt ?
Your book its awesome. Very easy to read with a lot to learn, I recommend it
Amazing video! Just the perfect timing for me. Hope to learn more and get prepared for my applications. Thanks so much.
The contents and the production of this video are both amazingly great!
With unlimited horizontal scalability snd replication how do non functional requirements matter. Only thing we can design is for horizontal scalability.
Non-functionals requirements -> system quality attributes. System quality attributes are attributes that describe the qualities the systems has or should possess - including usability, security, availability, maintainability and much more. Non-functional requirements are specific (and ideally testable) requirements that focus on system quality attributes.
Regarding horizontal scaling and replication - whilst it's true that could computing makes them much easier to use, it doesn't mean that you always get value from them for free - there's often some trade-offs involved, even if it's only additional complexity.
Excellent Video. Condensed, but clear, with beautiful production. Me like a good framework.
Besides your information about system design, I really loved your way of showing the details and the animation. Good work ❤🎉.
That so awesome. The content and illustration on the high level. Many thanks.
I like they way you explain and present . Which software you are using for the animation .
Well you are spot on. I am already seeing dynamic architecture in play.
What is the application used please to build the presentation ?
Could you please show in an example video plz? I read one of your sys design books. It is a great reference book but it's difficult to simulate the interview session by just reading it.. Can you show by doing a 45-minute session, how you put this methodology into practice?
Hi..thank you so much for your great contribution and explanation..small request.. could you do system design video for cabs and ticket vending machines as those r asked recently in one of my interviews
Great! I really like this channel. Based on the quality content I ordered the book and am looking forward to reading it.
Really great explanation, Which app do you use for creating and animating diagram ?
Best descriptions of the plan. Thanks a lot ❤
Great content as always. Thanks for all your efforts.
this is the nost detailed explanation video I've ever watched. Like it a lot
Thank you for the guidelines!
One time I interviewed with Facebook for a Web Front End role. The interviewer asked me to design a Google Search server infrastructure, with load balancing, and how many servers are needed, etc. I think that's the summit of human intelligence
Its crazier around where I come from. Business analyst was asked DS question.
@@SchoolScience sometimes I wonder if they ask those question to disqualify you. Like whatever they ask, they hire the young people
I've always appreciating you. thanks for making this awesome video :)
Most important point :
Never jump to directly into HLD creation step. instead ask the requirements and functional and non functional both to get the short idea of scope and than built it accordingly. take your time and discuss
Love this, however I have never been part of a project where we had time to do all of this 😭
Great very good, Many thanks Sir. Just one question in which Software have you drawn those diagrams?
Beautifully presented. Thank you so much!
Great content and interesting to learn this way. May I know which modelling tool you use to create this content?
Great video! Thanks for the instruction.
Thank you for the video. What program do you use for your amazing graphics?
Really nice. Wondering about what you use to make the drawings of the video. Anyone knows?
After Effects.
Illustrator and After Effects.
Thank you for explaining in a nutshell
thank you! realy helpful
good content and video design , guide us what tools you are using for animation
A BIG BIG THANK YOU FOR THIS VIDEO !!!.
This video is just Amazing!
Really helpful video! Thanks for your great work.
it would be very intresting to see a mockup interview using this system
Great hints on an otherwise messy situation. Thanks!!
How are these animations made?
Your videos are awesome! Thank you
Load balance ? Web socket hard to scaling ? Did you elixir/erlang ??
Hi, I bought subscription to your book on your website. Does it contain both Volume 1 and Volume 2?
super useful and helpful! great video!
Sir at what point in your design cycle do you handle data modeling. You example is more a tech use case. If you took a typical IT org, we have complex data models. We find many new comers these days think of API to satisfy requirements and mostly ignore the core data/object model. As a result, we do not model data properly and end up with redundant tables or data structures
Thank you for this wonderful video
Hey can any body tell me how this guy make statefull images where things are moving.. please
Great video
your animations are amazing how its done ?
Salutations for guidance!
this is really informative and useful, thanks
is this a high level design or low level design?
What's the animation software used ?
Before creating right System Designs, industry needs to design the right interview process first.
Excellent one
How can you make a so professional & useful video, oh my master.
Pushing the algorithm ❤️
Absolute fire 🔥🔥🔥🥳✌️
Thank you ❤️
Can you create a roadmap for system design?
Why system designs mostly come with interview tags.
Thank you!
Useful ❤️
Amazing video
if interviews are stressful, fix them....software industry is the only industry where a candidate has to prepare for the interview...does a surgeon has to prepare for his/her surgery skills when he/she looks to change a job, or does a truck driver has to hone his driving skills when he goes for an interview...
The Asian dude on the video said this interview “might” be stressful, not that it’s broken.
I’m in this industry, and we don’t have licensing or certification requirements to get the right people for the business objectives.
This is like 45 mins or 1 hour that is all you have before ramping up someone for 6 months to a year before seeing what’s up.
the heck! no one curious what tool to generate those amazing animation diagram?!!! yyds
Very Nice
very useful
good video
This is a nice prep but you should stimulate actual interviews with people
TIL that websocket server is stateful and challenging at scale.
Ok i need this today … yes today because i have an real interview 🤣🤣
Fact 1 - System Design interviews are never open ended. These are always biased.
Fact 2 : Most interviewers are themselves not right fit to take such interviews.
Fact 3 : Forget about any such Framework, if the interviewer doesn't like you, you can never succeed.
Fact 4 : Scope of such problems is always bound to the scope of interviewer's understanding.
Rest such videos are always good to watch and learn new things. And these interviews has caused such videos industry flourish to help people make their money.
So no-one of these people would like to change these interviews' pattern and many candidates can continue to stuck in wild goose chase.
Argo have understand med but work fewest system Ego.
177 Schiller Flats
893 Smith Fords
596 Garry Lodge
System design interviews now a days feel more like a practiced choreography. Interviewer and interviewee dancing rhythmically. One missed step and its gone.
Whether you worked and used the technology you are proposing in your design doesn't matter and pretending that you are an expert in it is an art in itself.
342 Emelia Ramp