Мы Международная 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 мы фокусируемся на профессиональном росте - поэтому каждый занимается помимо того, что тем что нужно бизнесу - еще и тем, что ему интересно и драйвит.