DEV Community

Cover image for The one mistake engineers always make in System Design Interviews
Hunter Johnson for Educative

Posted on • Updated on • Originally published at educative.io

The one mistake engineers always make in System Design Interviews

This article was written by Educative's Co-founder and CEO, Fahim ul Haq.

In my 15+ years conducting System Design Interviews, I've seen skilled candidates lose job opportunities to one surprising mistake.

It's not forgetting a component in their design. Nor is it whether they choose a SQL or noSQL database.

Of course, there are plenty of opportunities for technical mistakes in the System Design Interview — this is especially true for candidates who are new to System Design.

But the mistake I want to talk about actually brings down both junior and experienced engineers.

That mistake is a failure to demonstrate soft skills. It can take many forms:

  • Poor listening skills
  • Failing to respond well to feedback
  • Designing around assumptions
  • Not communicating their thought process

In many respects, the System Design Interview determines your level of seniority. (A strong System Design Interview could mean the difference between starting at Facebook as an E5 rather than an E3.) As you interview for higher roles, you'll be expected to demonstrate more advanced System Design skills and soft skills — the latter of these two is where most candidates come unprepared.

Despite the importance of System Design soft skills, behavioral best practices remain largely undiscussed in mainstream System Design Interview prep. (Which is why I'm excited to share my new free course with you: The System Design Interview Prep Handbook.)

Now let’s cover a few of the biggest do’s and don’ts in the System Design Interview, including four proven strategies you can use to avoid pitfalls that trip up even the most experienced engineers.

Why do soft skills matter so much in the System Design Interview?

To be clear, your interview prep should thoroughly cover the technical fundamentals.

That said, technical skills aren't all your interviewers are looking for. Besides, other candidates will match you in technical proficiency at the end of the day.

There's no objectively right or wrong answer to a System Design Interview problem. Rather, there are multiple possible solutions.

This means your technical solution alone won't speak to your success — it's how you get there that counts.

A good solution in a System Design Interview involves far more than the technical solution itself. It involves applying the right soft skills through your process.

The real-world design process is not black-and-white. Interviewers need to see that you can articulate a solution, while navigating the ambiguity that's inherent to designing real-world scalable systems.

Moreover, System Design is a highly collaborative process. Strong candidates must be effective team players who can communicate with stakeholders, take feedback, and adapt to new challenges.

Now let's talk about how you can show your soft skills through the interview process.

System Design Interview

4 behaviors interviewers are looking for in System Design Interviews

The behaviors that send "hireable signals" to interviewers can largely be broken into four pillars.

1.) Communicating effectively

Why? Displaying your soft skills relies entirely on your ability to communicate.

Communication happens throughout the entire interview. You'll need to engage in a lot of dialogue — whether in conversation with your interviewer, or your narration of your thought process.

The conversation with your interviewer will largely be driven by questions. Every System Design Interview begins with a vague prompt. To understand your problem, you must ask questions to clarify any unknowns.

Your interviewers may ask you questions about — or even challenge — your design choices. This is either because they didn't catch your thought process, or there was a better design choice that you could have made. The key here is knowing that nobody expects perfection in your design, but they do expect that you address any design flaws with a growth mindset (and, if it was due to a knowledge gap: honesty).

Anyone who is designing must be a good listener. You should be able to respond quickly and adapt to new information you're given.

This means that even if you have years of real-world experience and exceptional design skills, a failure to communicate effectively will work against you.

2.) Navigating trade-offs

Why? Effectively handling trade-offs requires prioritization skills and an attention to detail.

Navigating trade-offs

Once you've identified the key requirements and constraints of a system, you have to design around trade-offs.

A trade-off is a compromise between two desired, incompatible features. For instance, you can't have a banking app that is both highly secure and highly available. You have to optimize around the most crucial feature for the problem at hand.

Designing a system is a game of trade-offs. When you move one piece, you know you may be compromising and opening vulnerability to something else. The key is showing good judgment here. When weighing the trade-offs of different solutions, you have to prioritize the solution that best accommodates the core problem you're trying to solve.

Navigating trade-offs is a crucial skill that your interviewers need to see. Once you pick the trade-off with the downsides that you're willing to accept, be sure to justify your thinking to your interviewer. The worst thing you can do is keep your thinking to yourself. Rather, you should be narrating aloud.

3.) Demonstrating the right level of expertise for your role

Why? If you can't demonstrate the right perspective for your role, you can't rise in seniority.

If you're unable to show your interviewers that you can bring the right perspective for your desired role, you're at risk of being down-leveled.

Down-leveling is when you're offered a job offer to a role lower than that to which you applied. For example, you applied for a senior level role, and even though you have 10 years of experience, you received an offer for a more junior position.

Tech career

Down-leveling often happens when you produce a technical solution but can't speak to other topics that would be necessary for you to deliver that service in the real world.

Therefore, at the end of your interview, you should aim to have time to dive deeper into specific talking points that are relevant for your desired level (and role).

The expected perspective will vary by role.

For example, junior and mid-level engineers will be expected to carry a discussion deeper into trade-offs, or a few of their design's building blocks.

As you grow into more senior engineering roles, your interviewers will look for signals that you're not just designing for today, but for the next decade. A senior engineer must identify potential issues that will arise as they scale their service. Beyond that, principal engineers should be able to anticipate unforeseen circumstances and prepare a plan to mitigate them.

Outside of engineering, technical project managers would be expected to address how their chosen technologies will depend on variables such as their budget and stakeholder commitments.

Demonstrating the perspective and abilities relevant to your desired role is one of the most important steps to avoid being down-leveled. Unfortunately, candidates who get too stuck in the weeds of designing miss this opportunity.

4.) Managing your time

Why? You must complete your design to have ample time to discuss it.

In addition to diving deeper into topics specific to your role, you need to budget time for various things in your System Design Interview: introductions, designing, questions, and more.

It's important to be strategic because you only have 45 minutes — and time will fly quickly.

In a 45-minute interview, there's no such thing as a perfect design. Your goal, rather, is to complete your design and have ample time to exhibit the other soft skills we've discussed thus far.

As an interviewer, it's just as stressful for me to see a candidate's time slip away. I know that they've prepared for their interview, but because they didn't track their time, they couldn't accurately show us the skills they brought to the table.

To help you avoid running out of time, I developed various memorable tips that I share in my new course.

Mastering the behavioral side of System Design Interviews

Only 1 in 5 software engineering candidates pass the entire technical interview process — and the System Design Interview is the most common downfall.

From communicating effectively to speaking appropriately for your level, there are many pointers I wish I could have shared more freely with candidates I interviewed. That's why I'm thrilled to share them in the first course I've authored on Educative.

The System Design Interview Prep Handbook is a free course dedicated to the overlooked behavioral best practices of the System Design Interview.

In this interactive course, you'll learn best practices I've developed from 15+ years of experience conducting System Design Interviews and designing distributed systems, and get an insider's look at exactly what your interviewers need to see from hireable candidates.

By the end of this course, you'll be able to confidently enter your System Design Interview and:

  • Avoid the common mistakes that can quietly disqualify you
  • Discuss the appropriate talking points for your desired role
  • Demonstrate collaboration skills, adaptability, and a growth mindset
  • Simulate the real-world design process, even if you have no prior experience

You'll also come away with a set of proven frameworks and tools to help you showcase your technical skills.

Check out The System Design Interview Prep Handbook today and let me know what you think!

In case you missed it, I shared more System Design Interview tips while taking live questions during my recent webinar: Cracking the System Design Interview in 2023. Check out the replay to learn how to target your interview prep around specific companies, and why mastering the System Design Interview will help you tremendously in your career.

As always, happy learning!

Top comments (2)

Collapse
 
yet_anotherdev profile image
Lucas Barret

Really good article and advice.
I have nevertheless a question.
You talked about the fact that with the level of seniority we look for more long-term vision.
But it could depend on the solution and timeframe we give us for put the solution in place. Or in this kind of interview can we assume we have kind of "unlimited" budget and time ?

Collapse
 
huntereducative profile image
Hunter Johnson

You as an interviewee need to work with whatever requirements you're given — and you will be expected to ask good questions to discern what those requirements are from your interviewer (including budget constraints). As for time, you could ask your interviewer if they have a certain timeline in mind for scaling the system. But in reality, systems can scale at unforeseen rates and getting a specific timeline from your interviewer isn’t crucial. If you’re given ambiguous answers, you can discuss a hypothetical time when the system has scaled immensely, and what changes would be needed to support its scaling and prevent issues. I hope this helped, and good luck!