
SEE ALSO: The PEDALS™ Framework for System Design Questions
System design (SD) questions test one’s ability to build software systems from scratch. Here are some examples:
-
Design an API for a payment provider.
-
Design an order inventory system.
-
Design a question and answer website like Quora.
-
Create a back-end system that created unique IDs.
Who is likely to get a system design question?
Software engineers and software architects are most likely to get system design questions. Other roles can get SD questions including:
-
Product Managers
-
Technical Program Managers
-
QA Testers
-
Data Scientists
-
Data Engineers
-
Support Engineers
What are interviewers looking for in a system design interview?
Software engineers and architects are most likely to get system design (SD) questions. However, the following folks get SD questions too:
-
Product Managers
-
Technical Program Managers
-
QA Testers
-
Data Scientists
-
Data Engineers
-
Support Engineers
SD questions appear at the interview because the roles above play a big part in building software systems that scale. Unlike the pre-Internet era, a modern application must work across thousands of servers, ready to serve millions and perhaps billions of users.
Interviewers love SD questions because it tests a candidate’s ability to:
-
Specify system requirements clearly
-
Articulate the desired system behavior
-
Specify constraints
-
Contribute to technical brainstorming
-
Point out technical drawbacks
-
Decide between technical tradeoffs
As a result, during the SD question, the interviewer wants you to specify:
-
The key services, preferably in RESTful API format
-
Define the data model
-
Define the cloud architecture, with an emphasis on scale