Full-stack

Senior Software Engineer (в команду рекомендаций) Full-time

О компании и команде

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

    Задачи:​​​

    • Работать вместе с 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.



    Ожидания от кандидата

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

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

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

    Условия работы

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

    Дополнительные инструкции

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

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

    Overview

    • Employer: Cheelee
    • Job Title: Senior Software Engineer (в команду рекомендаций)
    • Published: 1 month ago
    Apply For This Job