Context Gathering |
Candidate refuses to clarify the question or their thought process, and jumps right into diagramming |
Candidate fails to fully clarify the question or their thought process, leading to extensive modifications needing to be made throughout the interview |
Candidate is able to ask some questions to clarify the prompt, but requires hand holding from the Interviewer to fully grasp the right approach |
Candidate is able to clarify the question well, but needs to be prompted to discuss their thought process with the Interviewer before starting |
Candidate is able to proactively collaborate with the Interviewer to understand the problem and walk through their thought process before starting on their solution |
Service Design |
Candidate is unable to make any progress on the question |
Candidate is able to complete most of the core portion of the question, but is unable to fully implement the solution |
Candidate is able to complete the core portions of the question, but fails to implement/get to all portions |
Candidate is able to complete all portions of the question, but fails to reach implementation of the optimal solution |
Candidate is able to complete all portions of the question in an optimal manner |
Ambiguity |
Candidate refuses or fails to adapt their solution to new requirements |
Candidate needs some hand holding to fully understand the new requirements, and struggles to ideate on solutions without guidance from the Interviewer |
Candidate needs some hand holding to fully understand the new requirements, but can discuss through their solution for tackling them |
Candidate needs some hand holding to fully understand the new requirements, and can fully implement new extensions on their solution to accommodate |
Candidate is able to rapidly and collaboratively work with the Interviewer to design and implement new extensions on their solution for new requirements |
Scale |
Candidate is unable to discuss scalability of their solution |
Candidate is able to talk about scaling, but either is inaccurate at points or cannot discuss why they would use a certain scaling optimization vs an alternative one |
Candidate has some knowledge on how to scale their solution, but misses core components (caching, data replication, etc) |
Candidate is able to discuss how they can scale their solution, with prompting from the Interviewer |
Candidate proactively discusses ways they can scale their solution |
Data Modeling |
Candidate is unable to discuss securing their solution |
Candidate has some surface-level knowledge about how to secure their system, but cannot dive deeper with the Interviewer to discuss |
Candidate is able to talk about a couple of aspects of securing their system, but have large knowledge gaps during discussions with the Interviewer |
Candidate is able to comprehensively discuss how their solution can be secured, with prompting from the Interviewer |
Candidate is able to proactively discuss how their solution can be secured (cookie auth on endpoints, database security, network security, etc) |
Indexes |
Candidate is unable to discuss indexes, either conceptually, or as it pertains to their solution |
Candidate has some surface-level knowledge about how to incorporate indexes into their solution, but cannot dive deeper with the Interviewer to discuss |
Candidate is able to talk about a couple of ways that indexes would help their solution, but have large knowledge gaps during discussions with the Interviewer |
Candidate is able to comprehensively discuss how their solution can benefit from indexes, with prompting from the Interviewer |
Candidate is able to proactively discuss how their solution’s data can be indexed, the benefits of doing so, and the tradeoffs of creating some indexes vs others |
Sharding |
Candidate is unable to discuss sharding, either conceptually, or as it pertains to their solution |
Candidate has some surface-level knowledge about how to incorporate sharding into their solution, but cannot dive deeper with the Interviewer to discuss |
Candidate is able to talk about a couple of ways that sharding would help their solution, but have large knowledge gaps during discussions with the Interviewer |
Candidate is able to comprehensively discuss how their solution can benefit from sharding, with prompting from the Interviewer, and can effectively reason around how the data should be split across shards |
Candidate is able to proactively discuss how their solution’s data can be sharded, the benefits gained from sharding the data |
Consistency |
Candidate is unable to discuss data consistency, either conceptually, or as it pertains to their solution |
Candidate has some surface-level about how consistency patterns work and what their solution might fit, but cannot dive deeper with the Interviewer to discuss |
Candidate is able to provide some basic trade-off discussions around their solutions consistency patterns, but has some foundational knowledge gaps in the area |
Candidate is able to comprehensively explain the tradeoffs and their reasoning for the consistency pattern they’ve established in their solution, with prompting from the interviewer |
Candidate is able to proactively speak on the consistency of their design, and is able to reason through why their consistency model fits the intended solution |