Техвилл
Кибершеф

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 (работа с дисками, памятью, процессами); опыт работы с системами логирования и мониторинга.