Data Engineer нанимают не за дашборд и не за сертификат облака. Нанимают за то, что данные доезжают вовремя, в понятной схеме, без ручного копирования из пяти таблиц. Если вы умеете красиво визуализировать, но не можете объяснить, откуда берётся витрина и что будет при повторном запуске пайплайна, это другая роль.

В 2026-м вход в инженерию данных из СНГ чаще идёт через SQL, Python и один честный ETL, а не через «сразу Spark и Kafka». Ниже — чем роль отличается от аналитика, какой минимальный пайплайн уже считается доказательством и как не откликаться на senior-платформу с курсом.

Коротко:

  • Data Engineer отвечает за доставку и качество данных. Data Analyst — за вопросы к уже готовым таблицам.
  • Минимальный артефакт: источник → очистка → витрина → расписание → лог ошибки. Не «ноутбук с графиком».
  • SQL и понимание схем важнее модного оркестратора. Оркестратор без понятного SQL — декорация.
  • Не прыгайте в Spark-senior, пока нет одного стабильного пайплайна на нормальном объёме.
  • Ищите вакансии по задачам (загрузка, витрины, инциденты), а не по слову Engineer в заголовке.

Чем Data Engineer отличается от аналитика

Аналитик отвечает на вопрос бизнеса: почему упала конверсия, какой сегмент растёт, что случилось на прошлой неделе. Инженер данных отвечает на другой: откуда эти цифры, как они обновляются, кто сломает витрину, если источник изменит тип поля.

На практике это разные дни. Аналитик сидит в запросах, метриках, объяснениях. Инженер — в джобах, схемах, ретраях, мониторинге и разборе «почему витрина пустая с 06:00». Смежные навыки есть: SQL нужен обоим. Но портфолио аналитика с дашбордами не заменяет пайплайн. Если вам ближе вопросы к данным, сначала честно смотрите вход в Data Analyst, а не переименовывайте себя в инженера.

Есть ещё сосед: backend, который «подкрутил пару выгрузок». Это ближе, чем дашборд, но всё равно другая работа. Backend продаёт API и домен. Data Engineer продаёт повторяемую доставку данных. Путь из Python-разработки возможен — см. как стать Python-разработчиком — но заголовок менять рано, пока нет витрины по расписанию.

Какие задачи нанимают на входе

Junior и «сильный intern» по данным в СНГ и на русскоязычной удалёнке обычно закрывают не архитектуру озера, а операционку:

  • Забрать CSV / API / таблицу из продакшн-БД, положить в хранилище, не потерять типы.
  • Написать SQL-трансформации: дедуп, приведение дат, словари, простые SCD.
  • Поставить джоб по cron или в Airflow/Prefect/аналоге и понять, что делать, когда он упал.
  • Проверить свежесть и полноту: вчерашних строк нет — это инцидент, а не «ну, завтра пересчитаем».
  • Написать короткий runbook: как перезапустить, кого звать, какие таблицы трогать нельзя.

Это скучнее, чем «построить платформу». Именно это и берут. Вакансия junior DE, где в задачах «спроектируете lakehouse и ML-фичи», — не junior. Читайте тело объявления, не грейд в заголовке.

Что не считается входом

Три тупика, на которые уходит квартал:

  1. Курс с сертификатом и без джоба. «Прошёл Snowflake / Databricks» без репозитория, где видно ваш код загрузки и обработки, не закрывает сомнение. Сертификат — не работа и не замена пайплайну.
  2. Ноутбук «анализ титаника». Это аналитика или учёба. Инженеру нужно расписание, идемпотентность, схема, ошибка источника.
  3. Сразу Spark на кластере «как в FAANG». Без понимания обычного SQL и одной витрины это выглядит как копипаст из туториала. На входе чаще PostgreSQL / BigQuery / ClickHouse / Redshift-подобные вещи и Python, а не «я готов писать кастомные партиционеры».

Если коммерческого стажа нет, не извиняйтесь за это в первом абзаце резюме. Соберите артефакт. Как упаковать его в файл — в резюме без опыта и в профильном резюме Data Engineer.

Минимальный стек, который уже можно показать

Не учите всё облако. На вход хватает узкой связки, которую вы реально довели до конца:

  • SQL. Джойны, окна, CTE, объяснение плана на пальцах, работа с датами и NULL. Без этого остальное — театр. Ориентир по глубине — SQL-roadmap.
  • Python. Не «знаю pandas». Скрипт загрузки, обработка ошибок HTTP, запись батча, логи. Фреймворк оркестрации вторичен.
  • Хранилище. Одна СУБД, в которой вы понимаете типы, ключи и стоимость полного скана. Не пять облаков в резюме.
  • Расписание и наблюдаемость. Cron + лог или один DAG. Алерт «джоб не отработал» важнее красивого UI оркестратора.
  • Git и README. Как поднять локально, какие переменные, что считать успехом прогона.

Docker полезен, если вы им реально пакуете джоб, а не добавляете строку в навыки. Kafka, Spark, dbt, Airflow — берите один инструмент под задачу пайплайна, не чеклист вакансии senior.

Какой пайплайн собрать за квартал

Один сервис, не десять курсов. Тема может быть учебной, контракт — рабочий.

Недели 1–3. Выберите источник с историей: открытый API с пагинацией, выгрузка CSV раз в день, дамп учебной БД заказов. Опишите схему сырого слоя: какие поля, какие типы, что бывает пустым. Напишите загрузку, которая не падает на повторном запуске: вчерашние файлы не дублируют факт.

Недели 4–7. Витрина под один вопрос: «заказы по дням и статусам», «события пользователя за 7 дней». SQL-трансформации в репозитории, не только в BI. Добавьте проверку: число строк не ноль, дата свежая, сумма не уехала на порядок.

Недели 8–10. Расписание. Лог. Искусственная поломка источника и короткий текст: что увидели, как починили, что добавили в проверку. Это уже история для собеседования, не «я учил Airflow».

Недели 11–12. README, диаграмма потока в двух абзацах, одно ограничение честно: нет стриминга / нет SCD2 / нет продакшн-SLA. Рекрутеру проще звать человека, который знает границу проекта.

Не называйте это «платформой данных компании». Назовите учебным пайплайном заказов. Скрытый учебный проект, который притворяется продом, вскрывается вопросом «кто пользователи и какой SLA».

Пример 1. Девяносто дней из аналитики в DE

Исход: два года SQL в отчётах, Python на уровне скриптов, нет оркестрации. Цель — junior DE в команде, где уже есть хранилище, а не «построить с нуля».

  1. Месяц 1. Перестать собирать новые дашборды «в портфолио». Взять один отчёт, который сейчас собирается руками, и описать его как витрину: зерно, ключи, обновление раз в сутки.
  2. Месяц 2. Вынести сбор в скрипт + SQL, поставить на расписание у себя. Зафиксировать два инцидента: источник отдал кривую дату; джоб отработал, витрина пустая. Короткий разбор в README.
  3. Месяц 3. Резюме: заголовок «Data Engineer / SQL, Python, витрины», не «аналитик, готовый к инженерии». В опыте — текущая аналитика языком доставки данных, плюс учебный пайплайн ссылкой. Отклики только туда, где в задачах загрузка и поддержка джобов, не ML-платформа.

Переход не требует уволиться в первый день. Он требует, чтобы в файле и на созвоне вы говорили про джобы и схемы, а не про «инсайты».

Пример 2. Письмо на junior Data Engineer

Вакансия: junior DE, SQL, Python, ежедневные витрины, разбор упавших джобов, удалёнка, русский язык. Spark в плюсах, не в обязательных.

Откликаюсь на junior Data Engineer с витринами и разбором джобов.

По описанию в первый месяц нужно поддерживать ежедневную загрузку, чинить падения по логам и не ломать зерно витрины. Собрал учебный пайплайн заказов: API → сырой слой в PostgreSQL → витрина по дням и статусам → запуск по расписанию. Повторный прогон не плодит дубли. В README — как поднять и что я проверяю на полноту. Ссылка: [репозиторий].

Коммерческого опыта именно DE нет: сейчас аналитика на SQL. Spark в проде не запускал — в вакансии он в плюсах, готов разобрать ваш DAG на созвоне или сделать короткое тестовое на SQL + скрипт загрузки.

Почему это сильнее «прошёл курс Databricks»: роль названа, задача пересказана, есть артефакт, граница честная, следующий шаг конкретный. Черновик можно собрать в генераторе письма, сырым отправлять не стоит.

Как читать вакансии, чтобы не сжечь недели

Откройте каталог вакансий Data Engineer и смотрите не зарплатный заголовок, а задачи. Вилка в объявлении — ориентир одной компании, не медиана рынка. Свою вилку собирайте по фильтру роли, грейда, формата и региона в каталоге, а не по чужим скринам из чатов.

Красные флаги для входа:

  • Стек из пятнадцати пунктов, среди них Kafka, Spark, Kubernetes, MLOps — и при этом «рассмотрим без опыта».
  • Нет ни слова про витрины, качество, инциденты — зато «работа с большими данными» без определения.
  • Просьба сразу в мессенджер, оплата «после обучения», сертификат как условие оффера.

Зелёные признаки: один основной склад, SQL в явном виде, наставник или соседний middle, тестовое на запрос и маленький скрипт, а не «спроектируйте платформу на выходных».

Удалёнка из СНГ на русскоязычную команду реальна на этой роли. Англоязычная удалёнка без коммерческого DE почти всегда просит уже прод-контур. Не путайте формат и грейд.

Резюме, тестовое, собеседование

Заголовок: роль + SQL/Python + тип задач (витрины, ETL, поддержка джобов). Не «Data / ML / аналитик». Стек — короткий, совпадающий с пайплайном. Как не раздувать список — в как указать стек. Проекты описывайте как рабочие задачи: источник, зерно, расписание, проверка, ссылка. Каркас формулировок — как описать проекты.

Перед пачкой откликов прогоните верх файла через проверку резюме: общий заголовок «IT-специалист» на этой роли убивает вход чаще, чем отсутствие Airflow.

На собеседовании вас скорее попросят написать SQL, разобрать упавший джоб и объяснить, что такое идемпотентность загрузки. Не готовьте речь про «культуру data-driven». Готовьте один разбор инцидента из учебного пайплайна. Вопросы к роли можно сузить в разборе к собеседованию.

Тестовое имеет смысл, если оно похоже на работу: запрос, маленький пайплайн, документация. Просят доступ к личному кабинету банка или неоплачиваемую «платформу на две недели» — остановитесь и проверьте объявление так же, как любую сомнительную вакансию: как не попасть на мошенников.

Частые вопросы

Нужно ли высшее по математике или «цифровым кафедрам»?

Нет как обязательный билет. Нужны SQL, аккуратность со схемами и способность довести джоб до повторяемого результата. Диплом не заменяет витрину. Витрина без диплома на junior-входе работает чаще, чем наоборот.

С чего начать, если я сейчас аналитик?

Не с курса Spark. С одного отчёта, который вы переведёте на расписание и проверки. Параллельно сузьте отклики: DE с витринами, не «аналитик+инженер+ML». Если вопросы к данным вам нравятся больше джобов — оставайтесь в аналитике сознательно.

Обязателен ли облачный сертификат?

Нет. Сертификат без вашего кода загрузки — это строка. Если компания сама требует конкретный экзамен, это условие этой вакансии, не рынка в целом. Сначала артефакт, потом экзамен под конкретный стек, если он реально в задачах.

Можно ли войти сразу в стриминг?

Редко. Стриминг на входе почти всегда маскирует middle. Сначала batch, свежесть, идемпотентность. Стриминг имеет смысл, когда вы уже чинили обычные ежедневные джобы.

Сколько времени до первой работы?

Зависит от стартовой точки: сильный SQL ускоряет, нулевой SQL — нет. Квартал на один пайплайн плюс точечные отклики — реалистичная рамка для смены из аналитики или backend. Обещания «оффер за 30 дней с нуля» игнорируйте: они продают курс, не найм.

Нужен ли английский?

Для русскоязычных команд — читать документацию и логи. Для зарубежной удалёнки — рабочий письменный минимум и разбор вакансии на языке оригинала. Не держите английский как замену пайплайну.

Что сделать сейчас

Выберите один источник и один вопрос, на который ответит витрина. За две недели доведите загрузку до повторного запуска без дублей и опишите это в README. Не начинайте второй оркестратор, пока нет первого зелёного прогона с проверкой полноты.

Затем соберите резюме вокруг этого пайплайна и текущих задач, если они уже про данные, и откликайтесь только на объявления с загрузкой и джобами. Смотреть такие слоты удобно в вакансиях Data Engineer — и писать письмо уже под конкретную витрину, а не «в data вообще».