Data / SQL Senior — техническое интервью
75 минут, senior. Аналитические SQL, моделирование данных, ETL, качество данных.
- Вопросов
- 14
- Live-coding
- 2
Разогрев: опыт и контекст
Контекст данных
С какими объёмами данных и pipeline работали? Какие DWH/стеки (PostgreSQL, BigQuery, Spark)?
Рубрика оценки (0–10)
3–5: «SQL на работе» без масштаба. 6–8: TB order; batch vs streaming; tooling; личный вклад в pipeline/модели. 9–10: Data quality incidents; cost/latency trade-offs; org data mesh experience. Красный флаг: senior data без prod pipeline ownership story.
Подсказки интервьюеру
5 минут.
Аналитический SQL
Window functions
Нужен monthly retention cohort: для каждого signup month — % users active in month N. Подход?
Рубрика оценки (0–10)
3–5: Nested subqueries без windows. 6–8: Cohort table; DATE_TRUNC; ROW_NUMBER / LAG; retention matrix query outline. 9–10: Handles late events; timezone; test fixtures; performance on large fact table. Красный флаг: full table scan per cohort in app code.
Подсказки интервьюеру
6 минут — можно на доске pseudo-SQL.
Медленный отчёт
Dashboard query 45s на fact table 500M rows. План оптимизации?
Рубрика оценки (0–10)
3–5: «Больше CPU». 6–8: EXPLAIN; partition by date; pre-aggregate mart; materialized view. 9–10: Columnar store; sort keys; incremental refresh; query rewrite. Красный флаг: SELECT * on fact for BI tool.
Подсказки интервьюеру
5 минут.
Star vs snowflake
Проектируете DWH для sales analytics. Star или snowflake — когда что?
Рубрика оценки (0–10)
3–5: «Star всегда». 6–8: Star for simplicity/perf; snowflake for normalization/storage; conformed dimensions. 9–10: Slowly changing dimensions Type 2; role-playing dimensions; data vault mention ok. Красный флаг: OLTP schema copied to DWH «as is».
Подсказки интервьюеру
5 минут.
Data quality
Revenue metric в dashboard расходится с finance на 3%. Как расследуете?
Рубрика оценки (0–10)
3–5: «Пересчитаем SQL». 6–8: Source of truth definition; lineage; filter differences; timezone/currency. 9–10: Automated reconciliation tests; anomaly detection; ownership RACI. Красный флаг: ignore discrepancy «погрешность».
Подсказки интервьюеру
5 минут.
Практика: SQL / код
Top N per group
SQL: для каждого department вернуть top 3 сотрудника по salary.
Рубрика оценки (0–10)
3–5: GROUP BY max without tie handling. 6–8: ROW_NUMBER() OVER (PARTITION BY dept ORDER BY salary DESC) filter rn <= 3. 9–10: DENSE_RANK for ties policy; index on (dept, salary); explain plan. Красный флаг: correlated subquery O(n²) without awareness.
Подсказки интервьюеру
15 минут. Run выполняет скрипт целиком в SQLite, схема и данные уже в starter. В Engineering четвёртый сотрудник с той же зарплатой, что и третий, — повод спросить про политику ties (ROW_NUMBER vs RANK vs DENSE_RANK). Диалект SQLite: `DISTINCT ON` из разбора — только PostgreSQL, не запустится.
Dedupe events
Поток событий с at-least-once delivery. Напишите логику dedupe по event_id в batch job (pseudo-code ok).
Рубрика оценки (0–10)
3–5: DISTINCT without window/state. 6–8: Dedup table/watermark; idempotent upsert; batch boundaries. 9–10: Late arriving events; TTL; exactly-once semantics discussion. Красный флаг: in-memory dedupe only for unbounded stream.
Подсказки интервьюеру
15 минут.
Pipeline и архитектура
ETL vs ELT
Greenfield analytics stack. ETL в Spark vs ELT в warehouse — критерии выбора?
Рубрика оценки (0–10)
3–5: «Зависит» без criteria. 6–8: Team skills; data volume; transform complexity; warehouse compute cost. 9–10: dbt layer; streaming vs batch; governance; testability. Красный флаг: Spark for everything including simple SQL transforms.
Подсказки интервьюеру
4 минуты.
PII и compliance
Analytics team просит доступ к email в events. Ваш подход?
Рубрика оценки (0–10)
3–5: «Дадим read replica». 6–8: Minimization; hashing/tokenization; role-based access; audit logs. 9–10: Differential privacy/anonymization; legal basis; retention policy. Красный флаг: full PII copy to analytics sandbox «для удобства».
Подсказки интервьюеру
4 минуты.
Инженерная культура и вопросы
Провести интервью по этому шаблону
Зарегистрируйтесь бесплатно: скопируйте шаблон в организацию, назначьте интервью и проведите его в комнате с live-coding.
Начать в FlashTalk