[1/3] Acing the System Design Interview (System Design: Survive an Interview) (Category Architecture)
Over the past month, I’ve been quietly reading Zhiyong Tan’s book about the system design interview. published by Peter Publishing. I decided to read the book out of interest to compare it with the approach that I am close to and about. told And for a long time, I've been developing inside the company. TLDR; I found the book useful and liked it more than Alex Xu’s book, which I’m also talking about. told.
To begin with, the author, Zhiyong Tan, is now an engineering manager at Paypal and was previously a senior fullstack engineer at Uber, a data engineer at small startups, and an engineer at Teradata. In general, this experience allowed him to look at the issues of designing solutions and hiring employees in companies of different sizes and levels of maturity. The book itself is divided into three parts:
- The first part consists of 6 chapters and contains a structured introduction to the system design interview - we will talk about this part below.
- The second part contains 11 Examples of system design problems
- Applications have comparisons of monoliths and microservices, basic analysis of OAuth 2.0 OpenID Connect, a story about the C4 Model, and a discussion of how the two-phase commit works. In general, all these topics can be touched upon in the interview.
I'm going to talk about the first six chapters that seemed pretty healthy.
1. A walkthrough of system design concepts In the first chapter, the author introduces the basic concepts of system design, introduces the key terminology and explains that system design is about a discussion around the compromises to be made when designing a solution:) Further, the author quickly and at the top tells about the scaling of various services, starting with a small installation of the application and winding up GeoDNS, caching, CDN, horizontal and vertical scaling, cluster management, division into functionally independent parts. Interestingly, the author analyzes the story about working with analytical data. (ETL)Sharing services, as well as placing workloads on bare metall, cloud or even inside FaaS:) In general, most of these blocks can be covered in a separate chapter, if not a book, but the author gives a good overview of the concepts themselves.
2. A typical system design interview flow Here, the author describes a typical system design interview process, emphasizing the importance of clarifying requirements before designing. Special attention is paid to the separation of functional and non-functional requirements. I wonder if I'm with the guys from the club. handler The flow of interviews suggested in Alex Xu's book and also compared to what is accepted in T. If we talk more about the content of the chapter, we are talking about
- Clarification of requirements
- Creating a draft of API specks
- Communication of users and data
- Data modelling
- Discussion of logging, monitoring and allerting (I often leave it to the interview finals.)
Continuation of the first part of the book in next post.
#Software #Architecture #DistributedSystems #SystemDesign #Engineering