Skip to content
ArchDays logo
ArchDays 2022 · October 21, 2022

How to pass a System Design Interview

How to prepare, and how to behave during the section

/ How to Pass a System Design Interview · ArchDays 2022

Slide contents

  1. 1. How to pass a System Design Interview

    How to prepare, and how to behave during the section

  2. 2. Alexander Polomodov

    Technical Director & Fellow, T-Technologies

    I curate our System Design Interviews

    And I run design interviews myself

  3. 3. Walking the section step by step, ending with the tips

    What we'll cover

    Formalization and system boundaries

    Main flows and the conceptual diagram

    The real diagram and scaling under load

    Tips and recommendations for further study

  4. 4. The section unfolds step by step

    From the problem statement to the follow-up questions

  5. 5. 01. Formalization

    What the candidate does before drawing anything

  6. 6. Clarifying questions first, design second

    Framing the problem

    The task comes with functional requirements

    And with non-functional ones

    Then comes the clarifying-questions phase

    And only then the first line on the board

  7. 7. Architectural characteristics are chosen, not listed

    ATAM and the desired characteristics

    High availability and data consistency

    High throughput and scalability

    Auditability

    And ATAM as the trade-off analysis method

  8. 8. 02. System boundaries

    How the system connects to its surroundings

  9. 9. There are four ways to integrate

    System boundaries and its API

    Files, Database, API, Messaging

    APIs come as REST/OpenAPI, RPC, GraphQL, AsyncAPI

    You can draw in C4, UML, BPMN, IDEF0, DFD

    And describe the domains through DDD

  10. 10. 03. Flows and diagrams

    From the main scenarios to real technologies

  11. 11. Design iteratively: the happy path first

    The main flows and system components

    The main scenario first

    Then the exceptional flows

    Components appear as the flows get worked out

    The diagram grows with the conversation

  12. 12. The conceptual diagram gets checked for consistency

    The conceptual and the real diagram

    First the conceptual diagram and its review

    Then the choice of concrete technologies

    And the desired architectural characteristics

    After that — scaling under load

  13. 13. 04. Tips and materials

    How to pass the section and what to read

  14. 14. Seven tips, and the first one is the clock

    Tips for passing the interview

    Keep an eye on the time — the section runs about an hour

    Do not start designing straight away

    Talk your reasoning through and show initiative

    Speak confidently only about what you know

  15. 15. The section is a conversation, not a diagram exam

    What to take with you

    Requirements get clarified before the first line is drawn

    Boundaries are an integration style plus a notation

    The diagram grows iteratively from the happy path

    Technologies are chosen against the characteristics

    And time is a constraint you have to account for

  16. 16. Recommendations for further study

    Books and resources from the talk's closing part

    Wiegers «Software Requirements», Eyskens «Software Architecture for Busy Developers»

    Tanenbaum «Computer Networks» and «Distributed Systems»

    Hohpe «Enterprise Integration Patterns», Kleppmann «Designing Data-Intensive Applications»

    Khononov «Learning DDD», Petrov «Database Internals», Ibryam «K8s Patterns»

  17. 17. Thank you!

    polomodov.tech

    All slides and links are in the Telegram channel

    Alexander Polomodov, Technical Director & Fellow, T-Technologies

    @book_cube