Чем предстоит заниматься:

  • Разработка и улучшение алгоритмов принятия решений: проектирование, реализация и оптимизация алгоритмов на Java (и частично Python).
  • Проведение исследований на данных: работа с внутренними заказчиками, постановка задач, формулировка гипотез, сбор и подготовка данных, проведение экспериментов.
  • Интеграция моделей в существующую инфраструктуру: встраивание и сопровождение ML-моделей в Java-системах, отладка производительности и корректности.
  • Апгрейд существующих алгоритмов анализа и обработки данных: повышение качества, скорости и устойчивости текущих решений, рефакторинг и модернизация устаревших модулей.
  • Аналитическая поддержка продуктовых решений: интерпретация результатов экспериментов, подготовка выводов и демо.

Требования:

  • Знание Java (будет плюсом знание Python), желание развиваться в машинном обучении.
  • Знание базовых концепций программирования: структуры данных, многопоточность, ООП.
  • Уверенное знание Git.
  • Знание математической базы: линейная алгебра, методы оптимизации, статистика.
  • Понимание алгоритмов принятия решений: теории игр, рекурсивные структуры, деревья решений; умение превращать математику в код.
  • Инженерное мышление: структурирование кода, профилирование производительности, понимание архитектуры систем и взаимодействия компонентов.

Будет плюсом:

  • Знание фреймворков машинного обучения: PyTorch Lightning и CatBoost.
  • Навыки визуализации данных.
  • Опыт использования ONNX, пайплайнов Argo.

Мы предлагаем:

  • Гибкий подход к формату и месту работы — можно выбирать удалённый формат или один из офисов в Омске, Новосибирске и Санкт-Петербурге.
  • Корпоративная культура: общение на равных, поддержка, ценность обратной связи и инициативности, легкость общения и юмор.
  • Возможность влиять на процессы и воплощать идеи для повышения эффективности и качества продукта.
  • Работу в команде, которая стремится к технологическому лидерству в индустрии.
  • Доступность руководства компании и открытая внутренняя политика.