Files
tinkoff-career/interview/sections/system-design-backend.md
Alexander Polomodov 1648871a3b Additional link to public sysdesign interview
I've added link to public system design interview at ArchDays 2022
2022-11-30 17:12:06 +03:00

39 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Секция системного дизайна в Тинькофф
Обсуждаем проектирование системы. Во время секции предложим Вам разработать дизайн системы по набору требований.
## Как проходит секция
Вам будет предложен набор функциональных требований к системе. В течение часа Вам предстоит формализовать задачу, спроектировать API системы, оценить нагрузку и необходимые мощности, спроектировать модели и потоки данных.
Для визуализации процесса проектирования используется онлайн-доска [Sketchboard](https://sketchboard.io). Для упрощения работы с обширной палитрой данного инструмента в ходе секции рекомендуется пользоваться только элементами раздела Software Sketching.
Один из наших сотрудников [выступил](https://www.youtube.com/watch?v=Cth-B4r_pf4) на конференции ArchDays 2021 с докладом "Дизайн секции как проверка навыков проектирования систем на собеседованиях", в котором он подробно рассказал про то, как выглядит интервью по дизайну систем, что на нем оценивается и зачем все это надо. Расшифровка выступления доступна в [статье](https://apolomodov.medium.com/system-design-interview-at-tinkoff-7bd97c20d082) на Medium.
## Материалы для подготовки
### Сайты:
- [System Design Primer](https://github.com/donnemartin/system-design-primer) — базовые темы и упражнения по дизайну систем, а также упражнения по объектно-ориентированному анализу и проектированию.
- [Architectural Katas](http://nealford.com/katas/) — множество примеров архитектурных задач.
- [System Design Interview и как они оцениваются](https://apolomodov.medium.com/preparation-for-system-design-interview-66489d7a0af6) - описание ожиданий от кандидатов на разные уровни проектирования, шаблон задачи и материалы для самобучения
- [Публичное System Design Interview на конференции C++ Russia 2022](https://apolomodov.medium.com/example-of-system-design-interview-7790a5569207) - интервью по системному дизайну на проектирование Youtube. Это открытое собеседование похоже на то, как мы проводим свои собеседования кандидатов
- [Публичное System Design Interview на конференции ArchDays 2022](https://apolomodov.medium.com/public-system-design-interview-at-archdays-2022-2a7ea02175af) - интервью по системному дизайну на проектирование системы бронирования номеров в отелях. Это открытое собеседование похоже на то, как мы проводим свои собеседования кандидатов
- [Как подготовиться и пройти System Design Interview](https://apolomodov.medium.com/how-to-prepare-for-and-pass-the-system-design-interview-78b820589e8) - описание фреймворка прохождения System Design Interview, ожиданий на каждом шаге, от сбора требований до масштабирования под нагрузку. И самое приятное - материалы для самообучения для каждого из шагов в рамках этого фреймворка
### Книги:
- Wiegers "Software Requirements. Third Edition" - про требования к ПО
- Eyskens "Software Architecture for Busy Developers" - про trade-offs в архитектуре
- Tannenbaum "Computer Networks" - про компьютерные сети и как система связана с пользователям, а ее компоненты между собой
- Tannenbaum "Distributed Systems" - классика по распределенным системам и тому, зачем они нужны и как с ними быть
- Hohpe "Enterprise Integration Patterns" - классика про подходы к интеграции приложений между собой
- Kleppmann "Designing Data-Intensive Applications" - классика про приложения, интенсивно работающие с данными
- Khononov ""Learning DDD"" - про подход к пониманию того, а что ПО собственно делает и как разделить зоны ответственности
- Petrov "Database Internals" - про то, как работают базы данных
- Ibryam "K8s Patterns" - про орекстрацию рабочих нагрузок (преимущественно stateless)
- Google "Building secure and reliable systems" - про то, как проектировать надежные и безопасные системы и дальше с ними жить долго и счастливо
- Google "SRE Book" - про подходы к эксплуатации систем и обеспечению их надежности
- Google "SRE Workbook" - про подходы к эксплуатации систем и обеспечению их надежности