Подготовка к собеседованию Data Engineer
Содержание:
Чем DE отличается от аналитика
Data Engineer строит инфраструктуру, по которой движутся данные: пайплайны, хранилища, стриминг, оркестрация. Аналитик потребляет данные, DE их доставляет в потребляемом виде.
На собесе разница принципиальная:
- Аналитик пишет SQL для отчётов; DE пишет SQL для пайплайнов, где важна производительность и инкрементальность
- Аналитик использует BI; DE строит то, на чём BI работает
- Аналитик отвечает за интерпретацию; DE отвечает за доступность и качество данных
Поэтому хардкор глубже: нужно знать, как работает Spark под капотом, что такое shuffle, почему partitioning важен, как устроен Airflow scheduler, чем MergeTree отличается от других движков ClickHouse.
Этапы найма
Типичный найм DE в IT-компании средне-крупного размера занимает 3–5 недель и включает 4–6 этапов.
1. Скрининг с рекрутером
20–30 минут. Опыт, мотивация, ожидания. Уточнят знакомые технологии и масштаб данных в текущих/прошлых ролях.
2. SQL-интервью
60 минут. Не как у аналитика — задачи на оптимизацию, EXPLAIN, оконки в продвинутом стиле, partitioning, иногда window functions с edge cases. Подробно — SQL для Data Engineer.
3. Live-coding на Python
60 минут. Базовая обработка данных, но без pandas — обычно plain Python с генераторами и стримингом. Иногда — bash-задачи (sort, grep, awk).
4. Технологическое интервью
60–90 минут. Spark, Airflow, ClickHouse/Kafka — что используется в команде. Глубокие вопросы про архитектуру и edge cases.
5. System Design
60–90 минут. Спроектировать пайплайн / хранилище / стриминг под условие. Главный фильтр для middle+. Что выбираете, почему, какие trade-offs, как масштабируется.
6. Финал
С тимлидом или CTO. Behavioral, культурный фит, обсуждение прошлых проектов с архитектурными решениями.
Темы, которые проверяют
SQL продвинутый
Не «JOIN и GROUP BY», а:
- EXPLAIN, planning, индексы и их типы
- Оконные функции с RANGE/ROWS BETWEEN и сложными partition
- Партиционирование таблиц, pruning
- Транзакции, уровни изоляции, snapshot vs read committed
- Window functions advanced — running totals, gap-fill, dedup
Подробно — SQL для DE на собесе.
Python и Unix
- Итераторы, генераторы, чтение больших файлов чанками
- Concurrent: threading, multiprocessing, asyncio (когда что)
- pandas в ETL-контексте (но без BI-экзотики)
- bash, awk, sed, jq — обработка лог-файлов
Apache Airflow
- DAGs, операторы, зависимости
- Идемпотентность тасков, retry, backfill
- XCom, templating через Jinja
- Hooks и custom operators
- Sensor-операторы, DataAware scheduling
Подробно — Airflow на собесе DE.
Apache Spark
- RDD vs DataFrame, lazy evaluation
- Партиционирование, shuffle, skew и как его лечить
- Catalyst optimizer, AQE
- Joins (broadcast vs shuffle), UDF производительность
- Кеширование и persist стратегии
Подробно — Spark на собесе DE.
Streaming (Kafka)
- Топики, партиции, репликация
- Семантика доставки: at-most-once, at-least-once, exactly-once
- Consumer groups, offsets, rebalance
- Windowing, watermarks, late data в стриминге
Хранилища (ClickHouse, Greenplum)
- OLAP vs OLTP, колоночные хранилища
- Движки ClickHouse: MergeTree и его варианты
- Greenplum и MPP-архитектура
- Когда что выбирать
Подробно — ClickHouse и DWH на собесе DE.
Моделирование
- Нормализация vs денормализация
- Star schema, snowflake, fact и dim таблицы (Кимбалл)
- Inmon, Data Vault — для ширококросрочных хранилищ
- SCD типы (Slowly Changing Dimensions)
- dbt и его материализации
Качество данных и Architecture
- Измерения качества, мониторинг
- Lineage и трассировка данных
- Lambda и Kappa архитектуры, Lakehouse
- ETL vs ELT, медальон-архитектура (bronze/silver/gold)
- Форматы хранения: Parquet, ORC, Avro, Iceberg/Delta
- CDC и репликация
System Design
- Дизайн batch-пайплайна (suburban sandbox: события → DWH → BI)
- Дизайн стримингового пайплайна (Kafka → Spark Streaming → ClickHouse)
- Capacity planning, trade-offs
План на 4 недели
| Неделя | Фокус | Что делать |
|---|---|---|
| 1 | SQL продвинутый + Python | Карьерник: SQL для DE, Python и Unix. Прорешать 30+ задач |
| 2 | Spark + Airflow | Закрыть базу + 5 кейсов оптимизации Spark, 5 типичных DAG в Airflow |
| 3 | DWH (ClickHouse) + Streaming | MergeTree, partitions; Kafka — semantics, consumer groups |
| 4 | System Design + mock-интервью | Спроектировать 3 пайплайна вслух, mock с другом-DE |
Закрепляющая практика — короткие сессии в Карьернике, 10 минут в день. Вопросы по DE-темам в формате квиза.
Что любят в разных компаниях
Конкретные форматы меняются от команды к команде, общие тренды:
- Яндекс, Avito — глубокий SQL, разбор реальных кейсов оптимизации, system design на стейтэйт
- Т-Банк, Сбер — финтех специфика (regulatory data, real-time risk), много про качество и SLA
- Wildberries, Ozon, X5 — большие объёмы данных, ClickHouse часто, маркетплейс-специфика
- VK, Mail.ru — стриминг и большие графовые задачи, Kafka обычно
- Стартапы — практичность важнее академичности, спрашивают про реальные пайплайны
Частые ошибки
Готовиться только по теории. На собесе DE спросят: «Опиши последний раз, когда ты дебажил medlennyj Spark-job». Если кейсов нет — это сигнал, что опыта мало.
Игнорировать system design. Middle+ позиция почти всегда включает design-раунд. Без подготовки на нём проваливаются даже сильные технически кандидаты.
Не уметь объяснять trade-offs. Spark vs ClickHouse, Airflow vs Dagster — на собесе важно не «что лучше», а «когда что и почему». Кандидат, который говорит «всегда X» — слабый.
Использовать pandas на live-coding. На DE-позиции pandas — не основной инструмент. Если задача на стриминговую обработку, и вы тянете pandas — это плохо. Plain Python + генераторы — норма.
Не знать как работает под капотом. «Используем Spark» — недостаточно. Нужно понимать, как работает shuffle, что такое skew и как его выявить.
FAQ
Сколько готовиться к собесу DE с нуля?
Если есть SQL и Python — 2–3 месяца. Если приходите из аналитики — 1–2 месяца, упор на Spark/Airflow/system design.
Нужно ли знать Hadoop?
В 2026 — почти нет. Spark вытеснил MapReduce, HDFS заменяется на S3-совместимые хранилища. Знать концептуально — да, погружаться глубоко — не обязательно.
Spark vs Flink — что учить?
Spark в большинстве компаний РФ. Flink — там, где много стриминга (некоторые телеком-, fintech-команды). Если только начинаете — Spark.
Это официальная информация?
Нет. Статья основана на публичных источниках и опыте кандидатов. Конкретные процессы могут отличаться. Актуальные требования — на карьерной странице компании.