Собеседование системного аналитика
Что спрашивают на собесе системного аналитика
Собеседование системного аналитика — между бизнес-аналитикой и инженерией. Проверяют: как переводить бизнес-требования в технические, как читать архитектуру, как формулировать API-контракты, как описать процессы через BPMN, как работать с базами данных. SA редко пишет код в production, но читает его и проектирует системы.
В отличие от Data Analyst (фокус на метриках) или Data Engineer (фокус на инфраструктуре данных), SA работает с продуктовыми процессами и сервисной архитектурой. Это инженерная роль с фокусом на проектирование и документирование, не на статистику.
Этапы собеседования
1. Скрининг с рекрутером (20-30 минут). Опыт, грейд, инструменты.
2. Архитектура и REST (60-90 минут). REST, API contracts, микросервисы, протоколы. CAP, ACID, идемпотентность.
3. Требования и моделирование (45-60 минут). Use cases, BPMN, ER-diagrams, C4-model, ADR.
4. SQL и базы данных (45-60 минут). SQL, нормализация, индексы, JOIN, отличия SQL/NoSQL.
5. Системный кейс (60-90 минут). «Спроектируй интеграцию заказа с банком», «как обработать failover между сервисами».
6. Поведенческое (45 минут). STAR-вопросы.
7. Финал с лидом. Фит с командой.
Главные темы по разделам
Архитектура и системный дизайн
- C4-model на собесе SA
- Архитектурные паттерны на собесе SA
- API Gateway и BFF
- Architecture Decision Records (ADR)
- CAP-теорема на собесе SA
- Bulkhead pattern на собесе SA
API и контракты
- API contract testing
- Acceptance criteria (Given-When-Then)
- 2PC vs Saga
- Backpressure на собесе SA
- Background jobs на собесе SA
- Cache strategies на собесе SA
Базы данных
- ACID и уровни изоляции
- CDN и static content
- Capacity planning на собесе SA
- Что такое ACID-транзакции
Моделирование процессов
Безопасность
Гайды по компаниям
Примеры вопросов
1. Что такое CAP-теорема и как применяется на практике?
CAP — Consistency, Availability, Partition tolerance. В распределённой системе нельзя обеспечить все три одновременно, нужно выбрать два. Partition tolerance обязательна, потому что сети ненадёжны. Выбор между CP (PostgreSQL в кластере, MongoDB strong consistency) и AP (Cassandra eventual consistency, DynamoDB). Для банковских транзакций — CP. Для соцсети — обычно AP.
2. REST vs gRPC — когда что?
REST — текстовый протокол поверх HTTP, человекочитаемый, любой клиент. gRPC — бинарный, на Protocol Buffers, быстрее, сильно типизирован. REST для публичных API (партнёрские интеграции), gRPC для внутренних сервис-к-сервис.
3. Что такое идемпотентность API?
Многократный вызов даёт тот же результат. PUT и DELETE идемпотентны. POST обычно нет (создаёт новую сущность). Достигается через: client-supplied ID (UUID от клиента), MERGE по primary key, idempotency-key header. Важно для retry-логики и финансовых операций.
4. Acceptance criteria в формате Given-When-Then.
Пример: «Given юзер с подтверждённой почтой, When он отправляет запрос на сброс пароля, Then email с одноразовой ссылкой приходит в течение 30 секунд». Структурированный формат для тестируемых требований. Используется в BDD (behavior-driven development).
5. 2PC vs Saga — какой выбрать?
2PC (two-phase commit) — атомарная распределённая транзакция через координатора. Сильная consistency, но блокирующий и медленный. Saga — последовательность локальных транзакций с компенсирующими действиями. Eventual consistency, нет блокировок, но сложнее реализовать. На современных микросервисах преимущественно Saga.
Как готовиться
- Архитектурные основы. Книга «System Design Interview» (Alex Xu).
- CAP, ACID, идемпотентность. Понимать принципы, не зубрить.
- REST/gRPC. Уметь спроектировать API для сценария.
- BPMN, ER-diagrams, C4. Тренироваться рисовать на доске.
- SQL. Не на уровне DA, но JOIN, GROUP BY, индексы — обязательно. SQL-раздел.
- 152-ФЗ и compliance. Для российских компаний — обязательно.
Другие темы
FAQ
Чем SA отличается от BA?
Business Analyst (BA) — фокус на бизнес-процессах, требованиях. Systems Analyst (SA) — на технической реализации, архитектуре, API. На практике границы размыты, особенно в малых компаниях.
Нужно ли уметь кодить?
Junior SA — желательно базовый Python/JavaScript. Middle/Senior — читать код, понимать архитектуру. Писать в production — обычно нет.
Сколько готовиться?
Junior: 3-6 месяцев. Middle/Senior: 1-3 месяца.
Нужны ли BPMN-инструменты?
Знание Camunda / Bizagi / draw.io — желательно. На собесе обычно достаточно нарисовать на доске или объяснить словами.