Подготовка к собеседованию Data Engineer

Проверь себя · 1/3разбор после ответа
Как поведёт себя фильтр WHERE country IN ('RU', 'KZ') для строки, где country IS NULL?

Чем 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
Готовишься к собесу Data Engineer?
Spark, Airflow, ClickHouse, SQL для DE — вопросы с разборами в Telegram
Тренировать DE в Telegram

План на 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 в большинстве компаний РФ. Flink — там, где много стриминга (некоторые телеком-, fintech-команды). Если только начинаете — Spark.

Это официальная информация?

Нет. Статья основана на публичных источниках и опыте кандидатов. Конкретные процессы могут отличаться. Актуальные требования — на карьерной странице компании.