Собеседование на Data Engineer в Яндекс Лавке
LAG(price) OVER (PARTITION BY product_id), чтобы получить «вчерашнюю цену» товара по дням. Почему результат может оказаться неожиданным?Содержание:
Почему Яндекс Лавка — особенный работодатель для DE
Яндекс Лавка — это quick commerce (q-commerce): доставка продуктов из даркстора за считанные минуты, часть экосистемы Яндекс Go. Для дата-инженера это среда, где данные генерируются быстро и должны обрабатываться почти в реальном времени: события заказов, операции даркстора, перемещения курьеров, изменения остатков. DE здесь строит пайплайны для этих событий, поддерживает управление запасами (inventory) и аналитику, которая нужна операционным командам не завтра, а сейчас.
Главная особенность — сочетание операционной скорости и real-time. В классическом ритейле отчёт за вчера — норма, а в q-commerce решения о пополнении даркстора, распределении курьеров и доступности товара принимаются в течение дня, иногда минут. Поэтому от DE ждут не только уверенного batch-стека, но и понимания стриминга и потоковой обработки. Работа идёт на стеке Яндекса — это собственные распределённые системы обработки данных плюс ClickHouse (изначально яндексовская OLAP-СУБД), Spark и Kafka. Актуальные вакансии и детали — на странице карьеры Яндекса.
Информация в статье основана на публичных источниках и опыте кандидатов. Формат может отличаться по командам и грейдам. Уточняйте у рекрутера.
Этапы собеседования
Точное число зависит от команды и грейда, но обычно это 5–6 этапов — стандартный для крупного техно-работодателя процесс.
1. Скрининг с рекрутером (30–45 минут)
Знакомство, опыт, мотивация, соответствие грейду. Полезно коротко рассказать про пайплайны, которые вы строили: объёмы данных, инструменты, влияние на продукт.
2. SQL и Python (live coding)
Практика по SQL (оконные функции, агрегаты, дедупликация, оптимизация) и Python. Могут добавить алгоритмическую задачу — Яндекс исторически любит проверять базовый алгоритмический бэкграунд.
3. Обработка больших данных (Spark)
Ключевой блок для q-commerce с её объёмами событий. Спросят про модель Spark, шаффлы, перекос данных (skew), партиционирование, оптимизацию джойнов. Подготовка — Spark на собесе DE.
4. ClickHouse и DWH
Работа с аналитическим хранилищем: движки таблиц (MergeTree и его варианты), партиционирование, материализованные представления, проектирование витрин под быстрые аналитические запросы.
5. Проектирование архитектуры (system design)
Кейсы уровня «спроектируй пайплайн» под реальные сценарии Лавки: обработка потока заказов, real-time отслеживание остатков, аналитика даркстора. Обсуждают выбор batch vs streaming, гарантии доставки, идемпотентность, мониторинг.
6. Поведенческое интервью и финал
Вопросы про работу в команде, кросс-командное взаимодействие, поведение при инцидентах и сорванных сроках. Часто совмещается с финальной встречей.
Что Яндекс Лавка ценит в DE
- Spark и распределённая обработка. Умение обрабатывать терабайты событий, понимать шаффлы, skew и оптимизацию джойнов.
- ClickHouse. Уверенная работа с OLAP: движки таблиц, партиционирование, материализованные представления.
- Стриминг. Kafka и потоковая обработка — из-за real-time природы q-commerce это не «плюсом», а частью базового стека.
- Real-time мышление. Понимание, где нужен стриминг, а где хватит батча, и какие у каждого варианта trade-offs.
- Сильный SQL. Ожидаемый уровень — ближе к senior: сложные запросы, оптимизация, проектирование модели данных.
Типичные задачи и кейсы
- Event-пайплайн заказов. Спроектировать обработку потока событий заказа от оформления до доставки: сбор, дедупликация, гарантии доставки, витрины для аналитики.
- Real-time отслеживание остатков. Поддерживать актуальные остатки по дарксторам в near-real-time, чтобы товар не продавался, когда его уже нет.
- Аналитика даркстора. Метрики операций даркстора: скорость сборки, загрузка, дефициты — с быстрым доступом для операционных команд.
- Spark на терабайтах событий. Оптимизировать тяжёлую обработку: борьба с перекосом данных, партиционирование, эффективные джойны.
- Партиционирование в ClickHouse. Спроектировать схему партиций и движок таблицы под объёмы и паттерны запросов Лавки.
Как готовиться: план
- Spark вглубь. Модель выполнения, шаффлы, skew, оптимизация джойнов и партиционирование. Spark на собесе DE.
- ClickHouse. Движки таблиц, партиционирование, материализованные представления, проектирование витрин.
- Стриминг. Kafka: партиции, consumer groups, гарантии доставки, идемпотентность.
- DWH и моделирование. Проектирование хранилища и витрин под аналитические сценарии.
- SQL до senior. Сложные запросы, оконные функции, оптимизация, дедупликация.
Частые ошибки
- Слабый SQL. Плавать в оконных функциях и оптимизации — то, на чём срезаются на практическом этапе, при senior-планке особенно.
- ClickHouse поверхностно. Знать «это быстрая OLAP-СУБД», но не уметь объяснить выбор движка таблицы, партиционирование и материализованные представления.
- Стриминг поверхностно. Отвечать про Kafka на уровне «очередь сообщений», не понимая партиций, consumer groups и гарантий доставки — в real-time продукте это заметно сразу.
- Игнорировать trade-offs batch vs streaming. Предлагать стриминг везде без оснований (или наоборот): интервьюер ждёт обоснованный выбор под сценарий.
Связанные темы
- Собеседование на DE в МТС
- Собеседование на DE в Авито
- Собеседование на DE в Купер
- Spark на собесе DE
- Собеседование на PM в Я.Лавке
FAQ
Сколько этапов на собесе DE в Яндекс Лавке?
Обычно 5–6: скрининг с рекрутером, live coding по SQL и Python, блок по Spark и большим данным, ClickHouse и DWH, проектирование архитектуры, поведенческое интервью с финалом. Точное число зависит от команды и грейда.
Нужен ли опыт в q-commerce или доставке?
Желателен, но не обязателен. Важнее понимать специфику real-time данных: обработку потока событий, актуальность остатков, требования к свежести аналитики. Если профильного опыта нет, покажите, что умеете строить стриминговые пайплайны и осознанно выбираете между batch и streaming.
Какие инструменты спрашивают чаще всего?
Ядро — Spark, ClickHouse и Kafka, поверх сильного SQL. Из-за real-time природы Лавки стриминг спрашивают серьёзнее, чем в среднем по рынку, а не «для галочки».
Какой уровень SQL ожидают?
Ближе к senior: сложные запросы с оконными функциями, оптимизация, дедупликация, проектирование модели данных под аналитические сценарии. Отдельно могут дать задачу на оптимизацию медленного запроса.
Это официальная информация о процессе найма?
Нет. Этапы и детали основаны на публичных источниках и опыте кандидатов и могут отличаться по командам и грейдам. Точный формат уточняйте у рекрутера Яндекса.