#соБЕСики
🔖Вакансия: Data Engineer
🔖Компания: Группа НЛМК Рабочие профессии
🔖Сколько просил: 280-330 тыс. рублей(назвал 300 комфортно)
🔖Месяц прохождения собеседования: Апрель 2025
🔖Формат работы: Удалёнка
🔖Оформление: ТК
🔖Требования вакансии:
⏺Построение витрин в S3 хранилище, ClickHouse;
⏺Создание DAG-ов в Airflow;
⏺Написание ETL пайплайнов на PySpark;
⏺Оптимизация PySpark кода;
⏺Внедрение DQC (Data Quality Checks)
⏺Визуализация результатов на дашбордах (Superset, Redash);
⏺Проведение код-ревью, рефакторинг Python кода;
🔖Стек:
PySpark, Kafka, Airflow, DBT, flyway, Hadoop, ClickHouse, PostgreSQL, Kubernetes, Superset
🔖Этапы собеседований:
HR(5 минут)➡ Тех.собеседование(2 часа)
🔖Процесс прохождения:
Разговор с HR был 5 минут, спросила про опыт и сразу пригласила на техническое собеседование.
Собеседование началось с описания вакансии и чем предстоит заниматься. В двух словах команда состоит из 6 человек: 3 DevOps и 3 DE + ищут еще 2х. Задачи на ближайшее время:
1) Перевод тасок с Pandas на PySpark
2) Парсинг данных из разных источников: FTP, PSQL, Oracle, API
3) Создание локального хранилища DE метаинфы на Postgres
4) Внедрение ClickHouse для горячего хранилища данных
5) и т.д.
Следом поспрашивал за мой опыт, где я ему четко рассказал, какими я задачами занимался и с какими инструментами работал. Что мне понравилось - собеседующий спрашивал по резюме, ему реально было интересно, как и с чем я работал, как загружали данные, спрашивал - с какими сталкивался трудностями, и даже для себя я что-то подсветил. Ему вообще было все равно, с какими я работал инструментами и то , что у меня только учебных опыт со Спарком. После чего начал задавать теоретические вопросы по Spark, ClickHouse, AirFlow, Python. В целом вопросы несложные, но иногда были и такие, где нужно подумать.
🔖Вопросы технического собеседования:
🗣PySpark:
⏺Что делает shuffle в PySpark?
⏺Какие типы трансформаций бывает?
⏺Какие проблемы могут быть с shuffle?
⏺Что такое spill? И в чем их причины? Какие варианты решения проблем со spill-файлами?
⏺Что такое data skewing? Как можно решить данную проблему?
⏺В чем различие coalesce и repartition?
⏺Чем отличается RDD от DataFrame?
⏺Для чего в Spark используется cache?
🗣Python:
⏺Что такое генераторы? Какие есть варианты определения генераторов?
⏺Что такое итератор?
⏺Что может быть ключём словаря?
⏺Класс вида:
class MyClass:
pass
может быть ключём класса? Если нет, то что необходимо добавить?
⏺в чем различие между return и yield?
⏺Что обозначает ключевое слово is?
⏺Какие есть изменяемые и неизменяемые типы данных?
⏺Есть функция, в ней передается аргумент **qwe, что это обозначает?
⏺Как вы дебажите код?
🗣AirFlow:
⏺Из скольких аргументов состоит?
⏺Что такое сенсер и для чего он нужен?
⏺Какие операторы вы знаете?
🗣ClickHouse
⏺Что такое гранулярность?
⏺В чем различие primary key и order by при создании таблицы?
⏺Где хранится индекс?
⏺Что такое кардинальность и как она аффектит ключ распределения?
⏺Что такое партиции и как они совмещены с primary key?
🔖Итоговое мнение:
В
вакансии написано много текста, о котором меня даже не спрашивали. Само собеседование мне зашло, особенно понравилось, что собеседующий опирается в первую очередь на те инструменты, с которыми ты работал, и что немало важно на твоё резюме, а не просто даёт шаблонный список вопросов.
Общение было приятное и уважительное, как я уже говорил — мне зашло, понравились вопросы, которые мне задавали, то, что не знал для себя подсветил и уже в доке почитал.
Если интересно (как я волнуюсь🫠, страдаю😨 и в целом умственно умираю🤯), запись собеседования можно приобрести 💲 и послушать ➡
тут.