Please refer to Part 1 before reading this: https://www.teamblind.com/post/PrincipalStaff-Offers-Evaluation-Prep-Strategy-GNcxoeOa [B.2] Track 2: System Design Interview Problems Must: ○ Grokking SDI: https://www.educative.io/courses/grokking-the-system-design-interview ○ SDI Channel: https://www.youtube.com/c/SystemDesignInterview/videos Additional Reading: ○ Alex Xu book ○ This track is where you would want to start thinking with interview mindset. SD questions are open ended as it is meant to gauge how you handle an abstract problem - do you ramble on with all you know or transform a non-deterministic problem into a deterministic solution. ○ Think of the interview more like a design review or presentation at work. The more organized and structured it is, the more effectively you would be able to communicate your solution in a limited time. ○ Grokking template would work in most situations. Even if the problem is unknown, having a template in mind would help you to navigate through the problem and not panic. ○ It is ok to spend up to 10 mins on Requirements (Functional/Non-functional) as it highlights your problem-solving approach. For functional, clarify how does data flow into the system, how does it flow out of the system, who are the clients, scenarios to support and scenarios out of scope. For non-functional, cover CAP/PACELC, performance, reliability, durability, security, geographic distribution, etc. ○ Cover high level design and then drill down into details: Data model & database design, scalability, reliability & maintainability of each component. As part of detailed design, highlight, if possible, an additional area from your experience - security, privacy/compliance, networking, monitoring/health, etc. ○ Time is of the essence so set the agenda or table of contents before you start like you would do in a design review. Take a minute and structure the conversation in your head once you have all the requirements. Even if you are unable to cover all topics, the interviewer would know what you had in mind. ○ For time distribution (assuming 40 mins): Requirements: 10 mins Estimations: 2 mins APIs: 2-3 mins High level design: 10 mins Data Model + database design + detailed design: 15 mins Follow up questions: 5 mins ○ Don’t waste time on exact calculations. Ask yourself if that is going to change your design. If not, skip it. Confirm with the interviewer if they want you to cover that aspect. For me, none of them said yes. ○ Try mock interviews for practice. I took a couple of paid mock interviews from interviewing.io and they were helpful. I did not do any peer ones but go for it if you need more practice. Schedule a few companies that you are not inclined towards in the beginning for true experience. ○ For questions in Grokking/SDI channel, prepare your own content for each category. You can use grokking content as starting point and supplement that info with Track 1 knowledge. ○ Cover the breadth and touch all aspects but prepare beforehand 2-3 areas to drill down into for each type of question. For instance, for chat server it could be message database design & communication mechanism, for rate limiter, it could be algorithms & concurrency/atomicity issues. [B.3] Track 3: Cloud Design Patterns and Solutions ○ This track is mostly for the people who don’t have relevant distributed system experience or want to expand their learning in this area. I did not do anything specific in this track for my preparation but have referred/used these patterns and solutions in past. ○ First part include the common concepts and components used while designing any distributed service. Most important ones are DNS (Routing methods, Anycast, BGP,..) , CDNs (Push vs Pull), Load Balancers (L4-L7, hardware vs software), Traffic Manager (DNS based routing), Frontdoor vs Traffic Manager vs Load Balancer vs App Gateway, TCP vs UDP, TLS/SSL, Bloom filters, RPC vs ReST, Caching (update strategies, eviction policies, L1/2/3, Redis/Memcache), Sync vs Async and Queues. ○ System design primer has good links to resources to most of these topics. Recommended: System design Primer: https://github.com/donnemartin/system-design-primer Additional Reading: ○ https://www.cloudflare.com/learning/dns/what-is-dns/ ○ https://docs.microsoft.com/en-us/windows-server/networking/dns/deploy/anycast#how-anycast-dns-works ○ https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/load-balancing-overview ○ https://avinetworks.com/what-is-load-balancing/ ○ https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-overview ○ https://afteracademy.com/blog/what-is-a-tcp-3-way-handshake-process ○ https://www.cloudflare.com/learning/ssl/how-does-ssl-work/ ○ https://www.youtube.com/watch?v=Bay3X9PAX5k ○ Second part include common design patterns and solutions employed while building cloud services. Recommended: ○ Cloud Design Patterns: https://docs.microsoft.com/en-us/azure/architecture/patterns/ ○ Amazon Builders' Library: https://aws.amazon.com/builders-library/ Additional Reading: ○ Azure Architecture: https://docs.microsoft.com/en-us/azure/architecture/guide/ Please DM or comment for any clarifications. I will try to answer everyone eventually. #systemdesign #interviews #e6 #l6 #principal
I will really avoid companies that allow such kind of grokking dude to get to principal level. I will in no time tell such people in a interview that they didn’t do these things before.
Bookmark it
Thanks a lot for sharing 🙂
This post is as comprehensive as it gets for senior+ SD interviews. Great job and thanks for the effort.
Thanks! Glad to help!
Thank you op.
OP, your posts are awesome! Thank you for taking the time to share. Would you be open to share about behavioral questions and how to prep too?
Thank you for the expansive second post and extra attention to detail. Crushing that Bias for Action and Higher Standards.
Hello OP, > Have you joined Meta? > Hope you will share B.Track 3 and C. > Wish you will share guidance on BQ as well. A. Overall Preparation Strategy B. System Design strateg Track 1: Theory & Real life applications Track 2: System Design Interview Problems Track 3: Cloud Design Patterns and Solutions C. Interview Experience/Tips
…how do I save this for future reference lol
Bookmark icon on top right
ctrl p save as pdf