Мы ищем ML-инженера, который усилит нашу команду в создании интеллектуальных сервисов для морской отрасли: сервисы предсказания поведения судна, детектирования аномалий в его движении, системы диагностики состояния судового оборудования, сервисы прокладки и оптимизации маршрута, системы автономной навигации. Вам предстоит анализировать данные и разрабатывать модели машинного обучения, которые делают судоходство эффективнее и безопаснее. Решения, разрабатываемые командой, востребованы как в российских, так и в международных проектах, включая проекты развития СМП (Северный морской путь).
Обязанности:
Разработка вычислительных модулей веб-сервисов для морской отрасли, включающая обработку больших данных и интеграцию моделей машинного обучения.
- Продукционализация ML-моделей: разработка сервисов для работы моделей в разных режимах — как синхронного API (REST/gRPC), так и асинхронных воркеров (ETL-процессы), обрабатывающих потоки данных и отправляющих результаты в NATS
- Data Processing пайплайны: написание эффективного кода для предобработки (preprocessing) и постобработки (postprocessing) данных перед подачей в модель и после нее
- Оптимизация производительности: Рефакторинг кода ML-инженеров для ускорения инференса (inference), оптимизация работы с памятью, уменьшение задержек (latency).
- Интеграция: Настройка взаимодействия сервисов с очередями сообщений и базами данных.
- Контейнеризация: Упаковка ML-сервисов в Docker.
Требования
Python Core & Performance
Отличное знание Python 3.8+
Глубокое понимание асинхронности (asyncio) и многопоточности/мультипроцессинга (threading/multiprocessing)
Умение писать типизированный код (Type Hinting, Mypy), использование Pydantic.
Web-фреймворки и API
Базовое владение FastAPI или Aiohttp.
Понимание принципов REST API, опыт работы с gRPC
Работа с данными (Data Stack)
Уверенное владение библиотеками для обработки данных: Pandas, NumPy, GeoPandas
Базовое понимание форматов данных ML: понимание размерностей, работа с JSON, Protobuf, Parquet.
Опыт работы с библиотеками для геометрических (shapely) и географических задач (pyproj)
ML-инфраструктура (со стороны кода)
Понимание того, как сохранять и загружать модели (сериализация/десериализация: pickle, joblib)
Базовый опыт работы с фреймворками PyTorch / TensorFlow / Scikit-learn (не обучение, а именно запуск инференса, загрузка весов, работа с CPU/GPU режимами)
Базы данных и брокеры
SQL (PostgreSQL, TimescaleDB, PostGIS) — умение писать сложные запросы, опыт оптимизации запросов будет желателен
NoSQL (Redis)
Очереди сообщений (NATS, Kafka, RabbitMQ) — для асинхронной обработки тяжелых ML-задач
Уверенное владение ORM: SQLAlchemy + GeoAlchemy2
Опыт работы с очередями задач (Celery, RQ)
Базовые навыки:
Знание принципов разработки микросервисной архитектуры
Умение проводить code review и оценку качества кода
Владение Docker на базовом уровне: умение писать Dockerfile и docker-compose.yaml
Владение Git
Опыт работы в Linux-системах
Будет преимуществом:
- Опыт интеграции в сервисы моделей машинного обучения на базе TensorFlow, PyTorch.
- Опыт работы с ONNX.
- Умение проектировать API-контракты (OpenAPI/Swagger)
- Опыт оптимизации SQL запросов
- Опыт работы с ГИС-системами (GeoServer)
Будет возможность:
- Поучаствовать в разных проектах для различных продуктовых направлений;
- Участвовать в выработке архитектурных решений и выборе технологии;
Условия
- Оформляем по ТК РФ (также возможны ГПХ, ИП и самозанятость), техника и все необходимое для удаленной работы предоставляется.
- Стандартная пятидневка с гибким временем начала рабочего дня, гибридный режим работы, офис в центре Спб в 5 минутах ходьбы от м. Горьковская.
- Тесное взаимодействие с командой , коллективное обсуждение и решение ключевых вопросов.
- Аккредитованная IT-компания.
- Стабильная официальная зарплата, система грейдов и премии по результатам проектов.
- Новые проекты без легаси.
- Кросс-функциональные команды, гибкая разработка по системе Agile.
- Family team 50+ человека, большинство в СПб, без текучки и микроменеджмента.
- Быстрое решение по кандидатуре.