System Design
About Lesson

Coming up with a system that is complete and works well in the desired environment is essential, which most candidates would be aware of. What some might struggle with is understanding what counts as a complete solution.

Let’s see what the interviewers are looking for in this area.

  • Working solution
    • Coming up with a simple, clear and working solution that addresses the problem and satisfies the requirements is necessary.
    • It should be easy to understand and not overly complicated.
  • Extensibility
    • A good design has a clear segmentation of modules based on functionalities, so that each of them can be independently handled.
    • The design should make addition of new features seamless.
  • Maintainability
    • The design should have a clear separation of responsibilities such that different services could be owned by different teams without any conflict, leading to easily maintainable services and overall system.
  • Scalability
    • When building any large-scale system, scale should be one of the paramount concerns. Users are expected to grow over time. It’s important for candidates to come up with a scalable design, that would not just fail if the number of users grow by a factor of 2 or even 5.
    • Candidates need to be able to identify possible challenges when scaling the system, and address those gaps proactively, without much prompting from the interviewer (especially in case of senior candidates). Some examples include handling large databases, maintaining consistent data, handling traffic, maintaining low latency in response, etc.
  • User Experience
    • A common mistake many candidates make is just thinking of the product from a developer’s perspective, and not taking the end users into consideration at all.
    • It’s very important to build a system with end-users in mind, understanding their needs and pain points. This would enable candidates to come up with first the system requirements and then the design which is intuitive and straightforward from an end-user’s perspective.
    • The candidate could also discuss some ways to collect early user feedback, wherever applicable.
Scroll to Top