System Design
- Производительность и масштабируемость
- Задержка и пропускная способность систем
- Доступность и согласованность (Eventual Consistency)
- CDN
- Балансировщики нагрузки
- Асинхронность и идемпотентность запросов
- Трассировка
- Логирование
Архитектура
- Архитектурные стили (монолит, микросервисы, SOA)
- UML (типы диаграмм, визуализация процессов)
- Контейнеризация и оркестрация (Docker и Kubernetes)
- Надежность (отказоустойчивость, распределенные транзакции, масшабируемость)
- Брокеры сообщений (RabbitMQ, Kafka)
Жизненный цикл разработки ПО
- SDLC (этапы, практики, методологии)
- Работа с требованиями (критерии DoD и DoR, декомпозиция, груминг и оценка)
- CI/CD (GitLab Pipelines, GitHub Actions)
- Releases (version, tags)
- Контроль версий (Git, GitFlow)
- Управление разработкой (Agile, Scrum или Kanban)
Обеспечение качества
- Тестирование (unit-тесты, e2e-тесты)
- Linters
- Code Review
- Quality Gates
САОД
- Структуры данных (массивы, списки, деревья, графы)
- Алгоритмы сортировки
- Алгоритмы поиска
- Алгоритмическая сложность (оценка производительности)