Tech IndustryApr 17, 2022
MicrosoftTonnyStark

Principal/Staff Preparation Strategy - II

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

Practice interviewing with engineers from top companies, anonymously.
Practice interviewing with engineers from top companies, anonymously.
interviewing.io
System Design Interview
System Design Interview
YouTube
The Amazon Builders’ Library
The Amazon Builders’ Library
Amazon Web Services, Inc.
donnemartin/system-design-primer
donnemartin/system-design-primer
GitHub
Principal/Staff Offers Evaluation.. + Prep Strategy
Principal/Staff Offers Evaluation.. + Prep Strategy
Blind
Cloud design patterns - Azure Architecture Center
Cloud design patterns - Azure Architecture Center
Microsoft
Grokking the System Design Interview
Grokking the System Design Interview
Educative: Interactive Courses for Software Developers
New
oowweee Apr 17, 2022

…how do I save this for future reference lol

Microsoft fatandlazy Apr 17, 2022

Bookmark icon on top right

Meta Omniphobia Apr 19, 2022

ctrl p save as pdf

AT&T Sauw01 Apr 17, 2022

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.

ADP Jaclyn Apr 17, 2022

How?

Microsoft fatandlazy Apr 17, 2022

Email or in person conversation

Oracle satko Apr 17, 2022

Bookmark it

Confluent mr.romeo Apr 17, 2022

Thanks a lot for sharing 🙂

Google aof76 Apr 18, 2022

This post is as comprehensive as it gets for senior+ SD interviews. Great job and thanks for the effort.

Microsoft TonnyStark OP Apr 25, 2022

Thanks! Glad to help!

Meta ElonTweet Apr 25, 2022

Which offer did u go with?

Microsoft Bkrf72 Apr 25, 2022

Meta

Amazon udelkj Apr 25, 2022

Thank you op.

Microsoft SiCN64 Apr 30, 2022

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?

New
Sanders99 May 2, 2022

Thank you for the expansive second post and extra attention to detail. Crushing that Bias for Action and Higher Standards.

Microsoft Bkrf72 May 2, 2022

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