How to Succeed in a System Design Interview - Deepstash
Machine Learning With Google

Learn more about computerscience with this collection

Understanding machine learning models

Improving data analysis and decision-making

How Google uses logic in machine learning

Machine Learning With Google

Discover 95 similar ideas in

It takes just

14 mins to read

System design questions can often be as general as “How would you design Product X?”

“Oh, you mean what would be the best way to design a product that has had hundreds of software engineers working on it for a decade? Sure, let me answer that in 45 minutes or less!”

13

158 reads

So many companies, so many customs

In the beginning we all get the feeling that System Design is a huge subject to comprehend, which pretty much is true. The secret for this type of intreviews is to understand as much as possible what are the expectations of your recruiter and what will be the structure of the interview.

Being such a vast subject, there are a lot of approaches for this type of interviews. As a matter of fact, I already had 3 of them and each one was different from the rest. By far. And none of them matched with that the online sources were covering. This is why is important to understand their expectations.

15

87 reads

Show this strengths

Prior to presenting the steps you should follow once the interview begins, there are some qualilties that will help you leave a better impresion to the interviewer:

  1. Honesty
  2. Confidence 
  3. Willingness to learn

This 3 strenghts combined shows the interviewer that you have the right mindset and you might be a good fit for the company.

15

77 reads

Step 1 - Understand the goals

Clarify any ambiguity you have at the start of the interview. All your assumptions, speak them out loud and discuss them with your recruiter. Make sure you are on the same page, by asking:

  •  What is the goal of the system?
  • Who are the users of the system? What do they need it for? How are they going to use it?
  • What are the inputs and outputs of the system?

13

66 reads

Step 2 - Establish the scope

Think and discuss what are the main features that you will cover. As you can imagine, describing the whole infrastructure in detail is impossible in 45 minutes. Some questions you might ask are:

  • Do we want to discuss the end-to-end experience or just the API?
  • What clients do we want to support (mobile, web, etc)?
  • Do we require authentication? Analytics? Integrating with existing systems?

13

69 reads

Step 3 — Design for the Right Scale

Make sure that you know the data throughput and the number of users. This way you can create a software solution capable, scalable, without over-optimisations. Some questions to keep in mind during interview:

  • What is the expected read-to-write ratio?
  • How many concurrent requests should we expect?
  • What’s the average expected response time?
  • What’s the limit of the data we allow users to provide?

13

54 reads

Step 4 — Start High-Level, then Drill-Down

Once you have all the information collected from the previous steps, you can start actually designing the system. The best approach for this is to start by sketching all the parts that the solution is made out of. Once you have that done, you can take each part and provide more details, but make sure to not drill-down too much on a single subject. 

13

54 reads

Step 5 — Data Structures and Algorithms (DS&A)

While interviewing, some companies will be oriented more on the architecture part, while others focus more on the DS&A optimisations. Coming back to Step 1, it's important to understand what are the expectations of your interviewer and try to deliver based on them.

Keeping that in mind, try to start with a simple solution, the first one that you manage to come up with. Usually, while explaining out loud your solution, subconsciously, some neural connections are made and you might find optimisations down the line. Having a point to start, you can iterate and improve your solution.

13

39 reads

Step 6 — Tradeoffs

At the end of the day, there is no perfect solution. And this is available for any system, no matter how big the company is. Each solution has their advantages and disadvantages. The important part is to be aware of them and each decision you make should be made taking into account the tradeoffs. Preseting your interviewer the possible drawbacks of your solution shows them that you are aware of the system limitations and that you took them into account.

14

42 reads

Examples of decisions that imply tradeoffs

  • What type of database would you use and why?
  • What caching solutions are out there? Which would you choose and why?
  • What frameworks can we use as infrastructure in your ecosystem of choice?

13

51 reads

CURATED BY

teni

Normal person with peculiar dreams @unkl's protégé @cristianmezei's disciple

CURATOR'S NOTE

Some insights regarding the Design System Interviews. This article covers how to approach an interview of this type.

“

stash-superman-illustration

Explore the World’s

Best Ideas

200,000+ ideas on pretty much any topic. Created by the smartest people around & well-organized so you can explore at will.

An Idea for Everything

Explore the biggest library of insights. And we've infused it with powerful filtering tools so you can easily find what you need.

Knowledge Library

Powerful Saving & Organizational Tools

Save ideas for later reading, for personalized stashes, or for remembering it later.

# Personal Growth

Take Your Ideas

Anywhere

Organize your ideas & listen on the go. And with Pro, there are no limits.

Listen on the go

Just press play and we take care of the words.

Never worry about spotty connections

No Internet access? No problem. Within the mobile app, all your ideas are available, even when offline.

Get Organized with Stashes

Ideas for your next work project? Quotes that inspire you? Put them in the right place so you never lose them.

Join

2 Million Stashers

4.8

5,740 Reviews

App Store

4.7

72,690 Reviews

Google Play

samz905

Don’t look further if you love learning new things. A refreshing concept that provides quick ideas for busy thought leaders.

“

Shankul Varada

Best app ever! You heard it right. This app has helped me get back on my quest to get things done while equipping myself with knowledge everyday.

“

Sean Green

Great interesting short snippets of informative articles. Highly recommended to anyone who loves information and lacks patience.

“

Ashley Anthony

This app is LOADED with RELEVANT, HELPFUL, AND EDUCATIONAL material. It is creatively intellectual, yet minimal enough to not overstimulate and create a learning block. I am exceptionally impressed with this app!

“

Jamyson Haug

Great for quick bits of information and interesting ideas around whatever topics you are interested in. Visually, it looks great as well.

“

Laetitia Berton

I have only been using it for a few days now, but I have found answers to questions I had never consciously formulated, or to problems I face everyday at work or at home. I wish I had found this earlier, highly recommended!

“

Giovanna Scalzone

Brilliant. It feels fresh and encouraging. So many interesting pieces of information that are just enough to absorb and apply. So happy I found this.

“

Ghazala Begum

Even five minutes a day will improve your thinking. I've come across new ideas and learnt to improve existing ways to become more motivated, confident and happier.

“

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Access to 200,000+ ideas

—

Access to the mobile app

—

Unlimited idea saving & library

—

—

Unlimited history

—

—

Unlimited listening to ideas

—

—

Downloading & offline access

—

—

Personalized recommendations

—

—

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates