Middle Software Engineer (в команду рекомендаций)

Дата размещения вакансии: 26.11.2024
Работодатель: Холдем
Уровень зарплаты:
з/п не указана
Город:
Москва
Требуемый опыт работы:
От 3 до 6 лет

Мы Международная IT компания, имеющая аккредитацию в Сколково. Наши продукты - это мобильные приложения высокотехнологической нагруженности в сегменте онлайн-платформ, способствующих общению, созданию контента и установлению связей между людьми по всему миру.
В настоящее время наша команда ищет опытного разработчика и коллегу в свою команду.

Требования:

  • Уверенное знание go;
  • Глубокие знания в области system design;
  • Самостоятельность и умение работать без ТЗ;
  • Опыт работы с Redis;
  • Понимание классических алгоритмов и структур данных;
  • Опыт работы с базами данных (запросы, миграции, оптимизация, профилирование);
  • 3+ лет опыта разработки стабильных и масштабируемых веб-сервисов и API (REST, JSON-RPC, gRPC).

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

  • Опыт работы с высоконагруженными системами;
  • Знание python (3.9+),( работа с python не более 5% всего рабочего времени) и опыт с asyncio;
  • Опыт работы с ClickHouse;
  • Практический опыт работы в ML;
  • Опыт разработки рекомендательных систем.

Задачи:​​​

  • Работать вместе с ML инженерами над разработкой высоконагруженной рекомендательной системы для видео ленты. Инференс ожидается высоконагруженный (тысячи RPS), поэтому нужно будет грамотно заворачивать модели используя компилируемые языки. Формирование рекомендаций должно быть до 100ms.
  • Создание на go новых сервисов, необходимых для ML - для обработки данных, работы с событиями, моделями.
  • Часть системы уже написана на go, нужно будет переводить оставшиеся python сервисы на go + развивать имеющиеся.
  • Потенциальный переход на работу с hot/cold БД (вместо одного Redis) для хранения данных и фичей с возможностью высокочастотного обращения к БД.
  • Дальнейшее развитие системы мониторинга и алертинга.

Технологии:
Сейчас есть сервисы как на go, так и на python (FastAPI, Faust).
Все крутится в AWS. Легкие сервисы разворачиваем в k8s-кластере, ML сервисы в AWS Sagemaker. Раскатываем через Gitlab CI.Линтеры, тесты перед merge request.
Пользовательские события отправляются сервисами на бэкенде в kafka.
Для аналитики из кафки мы собираем все в ClickHouse используя движок kafka в самом CH. Любое изменение схемы в БД версионируем через миграции. События из кафки вычитываем, аггрегируем и складываем в Redis (Используем Redis Stack).
Для тестирования моделей используем jupyter notebook managed в sagemaker — можем поднять любой инстанс по требованию с нужными ресурсами (GPU, CPU, RAM).
Мониторинг с помощью: prometheus, grafana, sentry, kibana.
Продуктовые метрики и дашборды строим в Datalens.

​​​​
Условия:

  • GPU/CPU сервера в облаке;
  • Топовое оборудование и весь необходимый софт;
  • Офис в шаговой доступности от метро Добрынинская / Серпуховская;
  • Возможность удаленной работы;
  • Гибкий график.

Дополнительно
Команда:
У нас в компании в основном продуктовые feature команды. Раньше мы были командой RnD, которая занималась всем, что связано с данными и машинным обучением, теперь мы выделили отдельную команду для ленты рекомендаций и начинаем ее формировать. Мы отвечаем за полный цикл своих разработок. Т.е. сами строим модели, заворачиваем в сервисы и выкатываем в прод. Сами мониторим. Сами несем ответственность за отказоустойчивость.
Стремимся вырастить всех внутри команды full-stack. Т.е. учим дата саентистов и дата аналитиков писать продакшн код. Инженеры учатся обучать модели. МЛ инженеры понимают как устроен продукт и продуктовая аналитика.
У нашей команды нет проджект менеджера или системного аналитика, кто писал бы нам ТЗ. Мы сами понимаем приоритеты бизнеса, синхронизируемся с бизнесом. Сами формулируем задачи, декомпозируем их и распределяем внутри команды. Зачастую сами приходим к бизнесу с новыми решениями и идеями.
Работаем по 2х недельным спринтам. Каждое утро стендап. Каждую пятницу в конце спринта - демо. После демо всегда ретроспектива. Каждые 4 недели с каждым членом команды 1to1 с тимлидом. Каждые 6 месяцев у каждого Performance Review. Используем джиру, но без фанатизма.

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