Middle/Senior Software Engineer go + python (в команду рекомендаций) (удаленная работа)

18 апреля 2024

Уровень зарплаты:
з.п. не указана
Требуемый опыт работы:
Не указан

Вакансия: Middle/Senior Software Engineer go + python (в команду рекомендаций)

Описание вакансии

О компании: Cheelee - это платформа коротких видео с механикой Watch2Earn, которая платит всем пользователям за просмотр ленты. Что-то вроде TikToka только с разными механиками монетизации для зрителей и авторов. Наш текущий DAU 100к. Более 500 инфлюенсеров (50+ звезд интернета и ТВ) и внутренний продюсерский центр участвуют в постоянном создании эксклюзивного контента. Компания основана в 2019 году, зарегистрирована в США. Размер компании - около 200 сотрудников, треть - отдел разработки (10+ команд).

Требования:
  • Уверенное знание go;
  • Уверенное знание python (3.9+) и опыт с asyncio;
  • Глубокие знания в области system design;
  • Самостоятельность и умение работать без ТЗ;
  • Опыт работы с Redis;
  • Понимание классических алгоритмов и структур данных;
  • Опыт работы с базами данных (запросы, миграции, оптимизация, профилирование);
  • 4+ лет опыта разработки стабильных и масштабируемых веб-сервисов и API (REST, JSON-RPC, gRPC);
Будет плюсом:
  • Опыт работы с высоконагруженными системами;
  • Опыт работы с ClickHouse;
  • Практический опыт работы в ML;
  • Опыт разработки рекомендательных систем.
Задачи:
  • Работать вместе с ML инженерами над разработкой высоконагруженной рекомендательной системы для видео ленты. Надо будет реализованные модели внедрить в продакшн: сервисы, которые занимаются обучением и сервисы которые занимаются инференсом. Сложность в том, что данных много - надо будет делать распределенное обучение. Обучение периодическое, поэтому важно научиться оптимально утилизировать ресурсы. Инференс ожидается высоконагруженный (тысячи RPS), поэтому нужно будет грамотно заворачивать модели используя компилируемые языки. Формирование рекомендаций должно быть до 100ms.
  • Часть системы уже написана на go, нужно будет переводить оставшиеся python сервисы на go + развивать имеющиеся.
  • Потенциальный переход на более подходящую БД (вместо Redis) для хранения данных и фичей с возможностью высокочастотного обращения к БД.
  • Дальнейшее развитие системы мониторинга и алертинга.
Технологии:
Пишем сервисы на python (FastAPI, Faust), go.
Все крутится в AWS. Легкие сервисы разворачиваем в k8s-кластере, ML сервисы в AWS Sagemaker. Раскатываем через Gitlab CI. В питоне активно используем mypy, pylint, flake, isort, bandit - без прохождения линтеров пайплайн не пропустит merge request.
Пользовательские события отправляются сервисами на бэкенде в kafka. Для аналитики из кафки мы собираем все в ClickHouse используя движок kafka в самом CH. Любое изменение схемы в БД версионируем через миграции. События из кафки вычитываем, аггрегируем и складываем в Redis (Используем Redis Stack, selfhosted).
Для тестирования моделей используем 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 мы фокусируемся на профессиональном росте - поэтому каждый занимается помимо того, что тем что нужно бизнесу - еще и тем, что ему интересно и драйвит.

Посмотрите похожие вакансии

DevOps engineer (Infrastructure)
Компания: YADRO
Зарплата: з.п. не указана
DevOps engineer (CI/CD)
Компания: YADRO
Зарплата: з.п. не указана