Viktor Leandersson


30.06.2022

3 min read

Engineering_Insights

Share on:

How to pass the System Design interview

The System Design interview (sometimes called the Architecture Interview) is one you might come across at many technology companies. Here at Tractable, all engineers (including ML specialists) have to go through it so we can understand their approach to designing systems. We recognise that everyone is different, so each interview is uniquely tailored to explore your previous experiences. In this article we’ll look at the interview’s structure and a few tips to help you prepare.

Interview structure

We’re looking at your communication and requirement-gathering skills as well as your ability to use different technologies to compose a production-ready system. If you’re applying for a junior or mid-level position, we understand you may not have worked with many different technologies yet. Work with what you have in your toolbox and we’ll help you with the rest. For senior positions, we expect that the system you design could be the foundation for a production-ready implementation.

The interview will have the following stages:

  • Introduction (2-3 minutes) to you and your interviewer 

  • System Design problem (50 min)

  • Your questions (5 min)

Time is very short, so make sure you keep track and pace your solution.

Your interview might be with someone in a different region, so most are conducted over Zoom and use Miro - a fairly simple tool. It might be helpful to familiarize yourself with its basic whiteboarding features beforehand.


Here are 8 tips to help you succeed

1. Familiarize yourself with similar interviews

There are hundreds of sources online, including videos, articles and System Design training software. It’s a good idea to find a resource that suits you, so that you can quickly understand what a System Design interview looks like.

2. Introduce yourself

We’d love to chat with you for hours, but to honour both our calendars, we need to keep the interview focused. Introduce yourself and your previous experience concisely and clearly, so we can more easily shape the interview around you.

3. Start with gathering requirements

We’ll vaguely describe the system we want you to design. This is deliberate to help us judge your requirements gathering skills. We expect you to spend the first 5 minutes asking us questions to clarify the task. Try to practice this stage before the interview with someone else. It’s an important basis for everything else.

4. State (and write down) any assumptions you make

It’s easy to make assumptions during your design process, which might lead to designs that are, from our perspective, sub-optimal. By clearly stating your assumptions beforehand, it’s easier for us to understand why you’ve taken a certain direction and for us to help you discover alternative solutions.

5. Be honest when you don’t know something

No-one knows everything. Sometimes we end up in scenarios with no clear way forward. It might be because you have never seen this exact scenario before. Or your chosen path can't deal with new aspects of the problem. That’s perfectly fine. It’s useful for us to understand when you’re in new situations like this, and how you’re thinking about them. If you can’t see a way forward then tell us and we’ll help you get back on track.

6. Take a step back when you feel blocked

At times, you may need a breather to think about the problem. So create some alternative sketches of your solution and keep them up your sleeve. This way, you can discuss the options before committing to a final route.

7. Don’t worry about the design not being perfect

While your technical solution will be part of the assessment, we’re not looking for perfection. We consider many other aspects including how you come up with your design, discussions around tradeoffs or alternative designs, and how you communicate your approach. So don’t worry if you can’t complete the design within the given timeframe - we don’t expect you to. It’s better to focus on your communication skills and the different tradeoffs you’ve made along the way.

8. We want you to succeed

We know that interviews can be a nerve-wracking and unpleasant experience for some. We’re there to make the experience as enjoyable and as interesting as possible. Your interviewer has been in your situation and gets it. We want to get to know you, see how you think about a problem and see you succeed.

Which is why we want to meet you in the first place.

Finally

We look forward to meeting you. Each interview teaches us something new, and hopefully we’ll see you soon as a Tractable engineer.

If things didn’t go so well, then please don’t let that put you off. We’ve all failed interviews, gone home to train and come out stronger. We would love to see you re-apply in 6 months time with your new skills should a similar position be open.