Design Fundamentals and Interview Process
Designing an application without knowing design fundamentals is like you are playing a game without knowing the rules. So You can consider design fundamentals as foundational knowledge for system design. It is as important as data structures for Coding interviews.
One thing is very important that there is nothing like wrong design, It always may be good or bad design. When interviewers ask you about system limitations or design problems then fundamental knowledge can be the key player to answer such questions because all the fundamentals are solutions for some specific problems.
The goal of such a question is to check your problem-solving ability on a complex problem. It is quite understandable that you might not have the experience to design such big applications but proposing the best possible solutions would show your understanding of design fundamentals.
The interviewer wants to see if you consider common distributed system challenges in your design like distributing the data to multiple machines and aggregating them together later and equally distributing the load on multiple servers. It is also quite interesting to see your design approach when user throughput increases.
System design questions are quite open-ended and there is no standard answer for such questions. They want to see that you think about operational scenarios, edge cases, limitations, and assumptions.
Interviewers can decide whatever direction the discussion will go in. With that in mind, even for the same question, you may have a completely different discussion with a different interviewer.
Who this course is for:
- Students who are part of software design or development process would be benefited with the course.