The System Design Interview [Part 2] — Problem Exploration

Storm Anning
3 min readJan 20, 2022

--

After the interviewer has outlined the question, one of the first signal area’s they’ll be looking to gauge is your ability to explore the problem.

Understand Why, Remove Ambiguity, Clarify Requirements, Establish Long-Term Scope, Outline Success, and Prioritize Sub-Problems

Tips

  • Start Small — Start by gathering the core requirements. There is a trade-off between over-exploration and having enough time to produce solutions.
  • Focus on What Matters —Be hyper focused on identifying the most interesting/challenging parts of the problem.
  • Communicate Priorities — Prioritize the sub-problems and components that should be tackled. By complexity? By risk? By impact? By dependencies? Making these clear and time-boxing for each will help you drive the interview.
  • Identify Hidden Details — Try to identify any data/problems not explicitly mentioned in the problem statement.

Common Topics

Ask Clarifying Questions

  • What do you want this system to do?
  • What are the inputs and outputs?
  • Who is going to use it and how?
  • How many users? How many operations/requests?
  • What are the usage patterns?
  • From where? At what time? For how long? How often? At peak?

Understand Why

  • Understand the intrinsic value of why the company wants to solve this problem
  • Identify the true scope for the next X-years

Define Functional Requirements

  • Put forward reasonable feature propositions
  • Evaluate alternatives and justify the reasoning behind adding these requirements into the scope

Define Non-Functional Requirements

  • Propose reasonable and objective technical requirements, as well any justifications for these choices

Consider:
—Availability, Latency, Reliability, Consistency, Scalability
—Usability, Accessibility
—Privacy, Security
—What PA&CEL&C trade-offs are we willing to make?

Define Extended Requirements

  • These can be stretch requirements that you might not have time to talk about, e.g. analytics etc.

Identify Constraints and Limitations

  • Environment Limitations
    —Client hardware, server hardware, screen sizes, RAM sizes etc.
    —Language/Internationalization
    —Legal constraints
    —Physical constraints, e.g. locality, access to internet, power.
  • Resource Limitations
    —Memory, CPU, Machines, Cost Budgets, etc.
  • Imposed User Constraints
    —Prevent system abuse & overload, throttling etc.

Identify What Isn’t in Scope

  • Brief discussion about what the future could hold and what we’ve deliberately left out of scope for this interview. This is useful because it shows long-term vision.

Define Objective Goals

  • Provide reasonable measures for success and your underlying motivations for these targets.
  • What are our completion goals?

Highlight Problem Priorities

  • Identify the priorities we should focus on in this interview based on their impact, complexity and risk etc.

Verification Questions

  • What is the problem we’re really trying to solve here?
  • Have you used ALL of the key information in the problem statement?
  • Are the most interesting/challenging parts of the problem clear?
  • Is this part of a bigger problem?
  • Is there a more generalized problem we should be solving for in the long-term?
  • What is the underlying motivation for solving this problem?
  • What are the unknowns?
  • What assumptions have been made?
  • What is the longevity of our defined scope & requirements? Will the scope/requirements change in the near future?
  • Does this seem similar to a related problem? Can it be reduced?
  • Are your non-functional requirements adequate against the functional requirements?

Part 3 — Back Of The Envelope Calculations

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Storm Anning
Storm Anning

No responses yet

Write a response