The system design interview provides the key signals that differentiate a tech lead from programmers. Here’s some tips may help you ace it. ![Image for post](https://miro.medium.com/max/753/1*NZGjsIPEFwTxgfyBy_AUZA.jpeg) Image...
The system design interview provides the key signals that differentiate a tech lead from programmers. Here’s some tips may help you ace it.
Image from Quora
When preparing, thinking about how to design a system that top-tier tech companies have(Google, Twitter, Amazon, Uber, etc).
Proactively picking some classic questions, like Twitter Feeds, Snapchat messaging, Dropbox file system, to exercise. Over-preparing and ensure you are familiar with these major scenarios.
“Drive the discussion from the beginning.”
After the interviewer throwing out the question, like “Design a Load Balancer for Twitter”.
Do NOT rush to the solution.
The very first thing you need to do is to get clarity about the system’s requirements and constraints:
In reality, the quality of these exploring questions reflects the candidate’s experience level.
Now that you have the clarity of the system’s requirements, continue to drive the discussion.
The next step is to write down the first version of a complete solution.
On a high level, a reasonable solution should include all the components that receive, process, and store the data. Specifically, we need to write down:
Then validate this solution with the interviewer, ensure the it satisfy the key business requirements. Sometimes it also involves a bit calculation to persuade the interviewer.
After having the 1st version solution nailed, the interview will usually go into the “Deep Dive” section. The interviewer will come up with a special requirement, and ask the candidate to adjust their design to ensure its system survive in this scenario.
There’s no one-fits-all answer at this stage. The interviewer really needs to leverage his/her experience and resolve it.
However, there’s one thing each candidate should keep in mind.
“Think in trade-offs”.
No matter what solution you propose, always write down its pros and cons. What makes it work and what to sacrifice to meet this goal. That’s the key signal of an experienced engineer.
Unlike the coding interview, there’re hundreds of ways a system design interview could go. But no matter what scenarios you’re in, I wish tips mentioned above could help you navigate to the ideal destination.
To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development.
Design systems are interdisciplinary by nature. They are built and consumed by designers and developers, therefore it is important for common terminologies to exist to support the communication between these two disciplines and other related actors.
Check out these five criteria for the selection of your software vendor, and you will never regret having the wrong quality product made for you.
This comprehensive article covers 10 writing steps to create a good project brief/summary for mobile app development and the writing mistakes to avoid.
That dreaded system design interview. I remember the first system design question I was asked. “Design WhatsApp”, he said. I didn’t know where to start! I was a fresher. Data structures and algorithms were the only things I knew. I am sure you can guess how that interview went. Then after enough research, I made myself a checklist of components, of sorts, to navigate me through my next system design interviews. And I sh*t you not, it works!