System Design Interview Tips

System Design Interview Tips

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 for post

Image from Quora

Pre-Interview Preparation

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.”

Explore The Restraints

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:

  • How many users we are talking about?
  • How many tweets sent per sec?
  • What are the latency requirements?
  • How are we going to store the data?
  • Clients are mobile or desktop?
  • Clients are Push or Pull model?
  • How many data centers we are talking about?

In reality, the quality of these exploring questions reflects the candidate’s experience level.

Complete Your Solution

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:

  • Al the components’ key responsibility(E2E)
  • Key data schemas
  • Key algorithms of processing data, like load balancing algorithm
  • How the system monitor and handle errors/exceptions

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.

Optimize

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.

For instances:

  • The QPS is very high
  • Read is 10x than write
  • Prioritize latency over accuracy
  • Ensure data security

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.

Ending

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.

software-development system-design-project system-design-interview interview

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Offshore Software Development - Best Practices

To make the most out of the benefits of offshore software development, you should understand the crucial factors that affect offshore development.

Glossary: Design Systems Defined for Developers and Designers

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.

5 Core Criteria for Selecting Software Development Company - TopDevelopers.co

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.

10 Writing steps to create a good project brief - Mobile app development

This comprehensive article covers 10 writing steps to create a good project brief/summary for mobile app development and the writing mistakes to avoid.

My System Design Interview Checklist in 8 Simple Steps

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!