Communicating for Impact
Learn why communication skills are important in the interview.
Communicating for impact
People often forget one important thing about the System Design Interview—more than an interview; it is a simulation of real-world conversation and collaboration.
Let’s look at some key ways to impress with your communication.
Asking strategic questions
When designing real-world projects, you’d usually ask questions early in the process to understand your problem. Similarly, you should begin your System Design Interview by asking questions.
There are two big reasons why asking questions is crucial at the beginning of the interview:
-
Your interviewers won’t give you all the requirements upfront. System Design Interview problems are intentionally vague. Interviewers might deliberately withhold information to see how you get enough clarification to move on to your next steps.
-
You can avoid faulty assumptions. When you practice enough design problems, you may see patterns. However, you should never fall prey to assumptions. Every system has unique challenges and constraints, and it’s your responsibility to glean this information from your interviewers.
Your strategic questions should aim to:
Clarify requirements and identify the big components to help you solve your problem. For example, what efficiencies are you trying to achieve?
Understand the scale of your system. For example, are you solving for hundreds of thousands of users or millions?
Understand the constraints of the organization. For example, are you facing certain latency limitations?
Tip: Targeting these goals will help you arrive at the most informed solution possible during your 45-minute interview.
The power of good questions
Good questions will show your thought process and understanding of the system. Once you understand the must-haves in the system, you can hone your solution toward meeting those requirements (and make better judgments when navigating trade-offs, as we discussed earlier).
It’s important to consider a system’s nuances as you ask questions. For instance, you might ask your interviewer how many users log into the system daily. If they tell you the daily average is 100 million users and you design a system accordingly, you could base your decisions on the average load. However, you’d be overlooking a critical piece of information—you don’t know the peak load! It could very well be that half of those 100 million users show up within a certain two hour window. You need to be able to design your system to account for nuances such as peak load. More experienced engineers should be able to extrapolate how this peak load might evolve in the future—this sort of thinking can earn you bonus points!
Demonstrating your communication skills
As your interviewer gives you feedback and new information, your communication should show your capacity to collaborate, adapt to changes, and grow.
Remember: The most successful interviews don’t go through one sequential solution. Rather, they meander through several different options before converging on a solution.
Capacity for collaboration
Design is a collaborative process. As such, the way you communicate throughout your process will help your interviewer see they can work with you.
Let’s consider a home-building analogy. As an architect, you may initially know what to expect from a client’s request. They’ll probably want a bedroom, but they’re probably not going to request a mining shaft.
For instance:
If the client wants a bigger bathtub, you might tell them the closet will be smaller.
They may respond that the closet is actually the most important requirement, so you tell them they’ll need a standing shower instead of a bathtub.
The client considers their overall requirements and agrees on that trade-off.
Similarly, as you explore ideas with your interviewers, you should be able to show that you can adjust to constraints and land on trade-offs throughout the process.
Adaptability
An experienced problem solver can adapt well to surprises. Your interviewer might even throw you deliberate curveballs to see how you adapt.
In both the interview and the real world, you must be able to reevaluate your design based on feedback and emerging requirements. You never get ironclad requirements in the beginning of the design process. Rather, you’ll tweak your design as requirements change.
Note: If you get information late in your interview that points to a more appropriate solution, you don’t need to implement a completely new design. But you should explain what else you could have done and why that path might have achieved the essential system requirements more effectively.
Growth mindset
The most real-world moment of the interview is the last 5-10 minutes when you’ve put your solution on the board and are fielding questions from your interviewer. At this stage, you want to convey that you have a growth mindset. Be open to feedback and show you’re eager to learn from your failures.
It’s common for interviewers to press you on why you’ve chosen a certain solution. After all, you may not have chosen the best solution possible. While this wouldn’t necessarily eliminate you as a potential hire, how you address your interviewer can be a deal breaker.
Consider these tips for when your interviewer challenges you:
Keep an open mind and suggest with words and body language that you’re willing to adapt.
Don’t stubbornly defend your original solution. There are no points for doubling down.
If you missed a better solution because you didn’t fully understand the requirements, admit it. Acknowledge that your design falls short and a better path exists.
How much communication is enough?
Communication should happen at multiple points in your interview. While there’s no strict formula for an appropriate amount of communication, there can be too little. If you’re working on the whiteboard for 30 minutes without any discussion, you need to communicate more.
Most great interviews wrap up in the middle of a discussion. If the ending is messy, that’s good. It means you got into the weeds. Your interviewer will likely be able to see that you fully understood the problem and would be able to reevaluate your design based on feedback.
Communication pointers
Here are some key takeaways for communication in your interview:
Ask strategic questions in the beginning of your interview.
Adapt to any new information you receive.
Display a growth mindset if you make mistakes or oversights.
Communicate at multiple points in your interview.
Quiz
You are a software architect participating in a system design interview for a company developing a cloud-based, collaborative document editing platform.
The primary goal is to create a seamless and efficient tool for teams to collaborate on documents in real time. The platform is expected to support users working on various documents, ranging from text-based to multimedia-rich presentations.
Your task now is to ask relevant and valuable clarification questions. Provide at least one (1) valid clarification question in the widget below.