Data Engineer (КШ)
Задачи
- Стек: Python, Apache Airflow, Docker, SQL (DuckDB), PyArrow, MinIO(S3), Apache Superset;
- Поддержка и развитие инфраструктуры обработки данных с роботов;
- Написание DAG'ов;
- Оптимизация SQL-запросов к Data Lake;
- Создание дашбордов в Superset.
Требования
- Python (продвинутый уровень);
- Опыт написания production-кода, понимание особенностей работы с большими данными (эффективность операций, например, сложность append и альтернативы);
- Уверенная работа с библиотеками: pyarrow (создание/чтение таблиц, партицирование), duckdb (встраиваемый SQL-движок);
- Опыт использования многопроцессности (multiprocessing, concurrent.futures) для параллельной обработки данных;
- SQL (средний уровень);
- Умение писать аналитические запросы (агрегации, оконные функции);
- Понимание разницы между DuckDB и Pandas для аналитических задач;
- Apache Airflow;
- Понимание архитектуры Airflow: DAG, операторы (Python, Bash, Docker), XCom;
- Практический опыт написания DAG'ов для ETL-процессов;
- Понимание, зачем используется Airflow;
- Docker и контейнеризация;
- Уверенное владение Docker CLI: inspect, system, ps, rm, exec и другими командами для диагностики;
- Знание docker compose: чтение и написание конфигураций, добавление новых сервисов, работа с сетями и томами;
- Навыки отладки внутри контейнеров (просмотр логов, проверка состояния файловой системы, запуск вспомогательных команд);
- Хранение данных и форматы;
- Опыт работы с объектными хранилищами, совместимыми с S3 (MinIO или аналоги);
- Понимание, зачем используется Parquet (колоночное хранение, сжатие, эффективность запросов) и его преимущества перед построчными форматами;
- Визуализация данных (Apache Superset);
- Готовность заниматься рутинной работой по созданию и поддержке дашбордов;
- Понимание структуры Superset: виртуальные датасеты, SQL Lab 7;
Soft Skills
- Высокая обучаемость и способность быстро погружаться в существующую архитектуру (bus factor = 1);
- Системное мышление: понимание полного цикла работы данных от загрузки до визуализации (Jupyter → Airflow → duckdb → lakeFS → MinIO → duckdb → Jupyter/Superset);
- Ответственность и готовность оперативно решать проблемы поддержки (что-то сломалось — надо чинить).
Желательно
- Знание ROS 2 (Robot Operating System) и формата .bag: понимание структуры топиков, сообщений, типов данных сенсоров (лидары, камеры, одометрия);
- Опыт работы с lakeFS: понимание концепции версионирования данных (ветвление, коммиты) и того, как lakeFS интегрируется с MinIO;
- DevOps-скиллы: базовое администрирование Linux (работа с дисками, памятью, процессами); опыт работы с системами логирования и мониторинга.