Junior Data Engineer / MLOps
Зарплата
Требования
Местоположение и тип занятости
Компания
Описание вакансии
Условия работы
Mindbox — крупнейшая в России облачная платформа автоматизации маркетинга, в пятерке B2B SaaS России. Помогаем компаниям — от ДоДо Пиццы и МВидео до ПИК и МИФ расти за счет эффективного маркетинга. Без спама.
Ищем python-разработчика, который хочет быстро дорасти до уровня senior в области MLOps и Data Engineering.
У нас:
- Система для запуска и АБ-тестирования моделей на Airflow over K8S c 2000 пересчетов моделей в день, 10 минут время доставки кода в прод
- Кроссфункциональная команда продукта рекомендаций из DS, PO, Python и C# разработчиков, 100+ человек в разработке, есть у кого поучиться: у нас работают докладчики конференций DotNext, Yandex.Scale, AgileDays
- Наш стек: python 3.7, pandas, numpy, sql, docker, kafka, GHA, Octopus, K8S, Helm, Я.Облако, Azure, Prometheus, Grafana, AlertManager, Graylog, Sentry, Amixr.io
- Особенная культура: право вето у каждого, открытые финансы и зарплаты. Без ограничений роста: навыки и заработок начинающих разработчиков часто растут в два раза за первый год-два работы (подробнее об инженерных командах: https://jobs.mindbox.ru/dev/)
В ближайшие задачи команды входит полный переезд высоконагруженной инфраструктуры обучения, АБ-тестирования и деплоя рекомендательных ML-моделей на Airflow/K8s. Затем будем обновлять ETL-стек с SQL/pandas до Spark/DeltaLake и работать над улучшением developer experience для наших DS.
Ожидаем, что ты:
- Пишешь поддерживаемый код на python
- Знаешь, что такое ООП и шаблоны архитектуры
- Работал с pandas, не боишься кода математиков, готов помогать DS с code review и проведением исследований
Станет плюсом и будет возможность изучить:
- Airflow
- Micorservices/k8s
- Kafka
- Spark
- Prometheus
Бонусы
Удаленно / гибрид / офис в Москве или Ереване.
- Офисы с заботой о людях: еда, кухня, комнаты по 6-10 человек, комнаты для зума, забота и комфорт
- Десктоп i9 с SSD или MacBook Pro, 2x4K монитора. В т.ч. для удаленных
- Спорт, квесты, настолки, ЧГК, VR и караоке
- Безлимитные отпуска, саббатикал, болезни без справок, свободный график
- 300 000 ₽ в год на софинансирование образования, медицины, спорта, путешествий. Книги бесплатно
Дополнительные инструкции
Для отклика на вакансию необходимо выполнить тестовое задание.
Результаты выполнения заданий должны быть предоставлены в виде ссылок на репозитории в GitHub.
Задание No1.
Есть Pandas DataFrame со столбцами [“customer_id”, “product_id”, “timestamp”] , который содержит данные по просмотрам товаров на сайте. Есть проблема – просмотры одного customer_id не разбиты на сессии (появления на сайте). Мы хотим разместить сессии так, чтобы сессией считались все смежные просмотры, между которыми не более 3 минут.
Написать методом который создаст в Pandas DataFrame столбец session_id и проставит в нем уникальный int id для каждой сессии.
У каждого пользователя может быть по несколько сессий. Исходный DataFrame может быть большим – до 100 млн строк.
Задание No2.
В SQL базе данных есть продукты и категории. Одному продукту может соответствовать много категорий, в одной категории может быть много продуктов.
Напишите HTTP API через которое можно получить:
список всех продуктов с их категориями,
список категорий с продуктами,
список всех пар «Имя продукта – Имя категории».
Если у продукта нет категорий, то он все равно должен выводиться. Если у категории нет продуктов, то она все равно должна выводиться.
Проект должен содержать docker-compose.yml файл, через который можно запустить сервис и проверить его работу.
Дополнительно оценим покрытие кода юнит-тестами.