5 Tips for System Design Interviews

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
hi everyone we are talking about five do's and don'ts for system design interviews now these tips are very useful if you have your system design interviews coming up soon or if you're just practicing and you want the maximum amount from each practice session now the first system design interview tip that I would like to give you is do not go into detail prematurely this happens very often when you're drawing services and databases and you know clients that are going to be connecting to these people get into one part of the system and go into very very deep detail for example if I look at the client and I say that I'm going to be connecting to these services sometimes people say that all right there's going to be a gateway here is this too much detail maybe not but this is I am going to be using the HTTP protocol what's going to happen with this kind of a flow is that you are going to be talking all the time and that's not what you want in a system design interview you're going to be talking for the majority of the time but you want the interviewer to be giving feedback where you often what happens with this is that when you go into detail and you take a flow which is not what the interviewer wants they won't even stop you they'll just let you run along and once you make the mistake you'll need to backtrack and that's not just wasting time in your interview that's also a negative point because in the real world if you did this and you had to backtrack that that would cost money right so avoid this point it's very important that you do not get into detail until and unless you're sure or you have asked that what should I do so a good way to actually talk about the same thing is I'm going to be talking to all my services using a gateway yeah this is reasonable wait for one second wait for a response and then say it's going to be talking to this service using a protocol I prefer HTTP because it's widely used and so the clients don't need to do something but again take that pause if there's something important it'll come up maybe there direct you if I'm going to be talking about databases and they want details mostly they're going to be talking about drawing an entity relation degrom so you'll be defining your tables well so that's how you go into detail you you wait for some time and you actually look for the first point which needs detail for the system to be defined better now for the second point the second point is that don't have a set architecture in mind if you have something already thought out you know you have read some blog which says that this is a really good architecture maybe MVC maybe event-driven and you just say that okay I'm going to be having this architecture and don't care about the requirements I'm somehow going to fit the requirements into the into the system so if I'm a fan of publish or subscriber models and I say there's going to be a publisher and subscriber here which is the only way that services are going to be talking to each other maybe it's not the best for the given scenario so if you are doing this again what could happen is the interviewer might take it aman upon themselves to actually break this architecture somehow so the requirements may change in fact very often that's that's the thing that is done it's to test your flexibility when you have something which you feel is really good and they throw requirements which are completely different so don't have a very set architecture in mind it happens often when we don't have time for system design interviews we are just reading all blog posts and we see something really go and feel like yeah this is going to fit everywhere that's not the case you know whatsapp and uber have very different architectures the third one is actually a ki SS which is very famous amongst programmers keep it simple stupid you don't want to pick up one point of the service and just go on you know getting into more and more detail about this service like I'm going to have maybe I'm going to have a heartbeat server which is going to be talking to this specifically I am also going to be having another database for analytics for this service you know more and more you get into this specific portion of the architecture the more and more narrow your viewers so what I would suggest is take a step back often enough just take a step back and have a look at the entire architecture maybe some of the things that you're doing here maybe the heartbeat maybe the analytics can be extend to the entire system and very often what happens is if you if you have a look at the diagram that you're drawing and if you see one part of the system you know huge and the other ones all tiny thin then it's a good idea it's a good indicator that maybe your system either it needs change or it needs to become more simplified you can extract out components from one part and extend them to the other bits the fourth point is probably the most common mistake made in system design interviews and that is to make points without justifications if you have nothing backing up what you just said for example I say that the database is going to be a no sequel database and I go even more concrete and say it's Cassandra one logical question is why why do you want that and many of us in in these interviews we feel the need to speak we feel the need to actually make points continuously because it's it's awkward the silence that is between you explaining and the interviewer evaluating that is very awkward so you might make a half-hearted comment on hey I can use Cassandra here or you might feel like hey axe land was really cool so why not just add that to the system be sure about what you're speaking if this Cassandra database is not going to be working well here that's going to be a negative point and that's going to be against you so avoid speaking without thinking the points through the final point is to be aware of current technologies with this what happens is if you draw a part of your system which is for example the database you can actually name the technology are using in that database so for example if I say I'm going to be using an or sequel database and we have already said Cassandra you can also use Amazon DynamoDB and so on and so forth what about a relational database which is not like a no sequel database I can use my sequel I can use Postgres another thing that you might use for load balancing is elastic load balancer so you might use the Amazon architecture to give you this for heartbeats you might use zookeeper for this message queue you might use rabid MQ so on and so forth but me being aware of these databases these off-the-shelf solutions shows that I am knowledgeable and I'll probably take lesser time and lesser testing to implement my entire feature so these are the five important do's and don'ts for your system design interview are three pillars that I see our system design interview standing on are the first one being clarity of thought so if you can express yourself clearly to your interviewer you can do the same with your teammates and that's a big plus point the second one is flexibility we talked about don't be stuck with one architecture and you know roll with the punches so flexibility is important when you're designing a system system design an interview and the final pillar is knowledge if you are aware of what's going on around the world and you're able to design the system successfully then this system design interview is a success so remember the five do's and don'ts that we have discussed over here and I'll be seeing you next time that's about actually designing a system from scratch so we are going to be picking up something and building it from scratch if you want notifications for that you can subscribe and if you like this video hit the like button I'll see you next time
Info
Channel: Gaurav Sen
Views: 348,753
Rating: 4.9132962 out of 5
Keywords: dos and don'ts for interview, system design interview, system design tips, tips for interview, tips for software interview, software interview, tips and tricks for interview, dos and don'ts, system design, software architecture interview, tips and tricks software interview, gkcs, gaurav sen
Id: CtmBGH8MkX4
Channel Id: undefined
Length: 8min 18sec (498 seconds)
Published: Sat Jun 09 2018
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.