Мы создаём платформу персонализации для всех продуктов VK. На нашей инфраструктуре работают рекомендательные системы, поиск и реклама крупнейших продуктов компании, масштаб которых достигает 300 млн пользователей и почти миллиарда единиц контента.
Немного о нашем масштабе:
- 1 млн vCPU вычислительных мощностей
- Сотни тысяч персональных подборок в секунду
- Более 300 инженеров из продуктовых команд используют нашу платформу, большинство из них — ML-инженеры
- Tier A, доступность более 99,99%. Мы умеем строить отказоустойчивые real-time системы и обеспечивать их работу под огромной нагрузкой
Наша миссия — сделать платформу, на которой продуктовые команды могут быстро воплощать идеи, экспериментировать и растить метрики, не задумываясь о сложности инфраструктуры. При этом платформа должна эффективно работать даже в масштабах крупнейших интернет-продуктов.
Наш технологический стек: Java (99% кодовой базы), C++ и Python для GPU-сервисов. Активно используем экосистему распределённых вычислений YTsaurus и разрабатываем собственные инфраструктурные решения.
Задачи
Мы ищем Team Lead в одну из команд платформы персонализации, которая отвечает за инфраструктуру поисковых сценариев.
Один из главных инженерных вызовов в поиске — найти оптимальный баланс между потреблением RAM и CPU. Поисковые системы предъявляют особенно высокие требования к полноте данных, скорости их доставки и эффективности индексации. При этом важно обеспечивать предсказуемую производительность и эффективно использовать вычислительные ресурсы.
В команде мы разрабатываем собственное реплицированное in-memory хранилище, технологии индексации контента и инфраструктуру для поисковых сценариев.
Вам предстоит:
- Руководить командой инженеров: развивать сотрудников, участвовать в найме и отвечать за результаты команды
- Определять техническое развитие команды и принимать архитектурные решения
- Развивать технологии хранения и индексации данных, оптимизировать производительность и использование ресурсов
- Реализовать персонализированное ранжирование поисковой выдачи, используя возможности платформы персонализации
- Масштаб, который редко встречается. Здесь даже небольшое архитектурное решение может влиять на миллионы пользователей и потребление тысяч CPU
- Сложные инженерные задачи. Мы не просто интегрируем готовые технологии, а создаём собственные решения для хранения, обработки и доставки данных в реальном времени
- Влияние на продукты. Результатами нашей работы пользуются более 300 инженеров продуктовых команд, а сама платформа лежит в основе ключевых продуктов VK
- Сильная инженерная экспертиза. Мы умеем строить системы с доступностью более четырёх девяток и постоянно работаем над тем, чтобы делать их быстрее, надёжнее и эффективнее
Требования
- Опыт руководства инженерной командой, включая people management
- Уверенное знание Java или опыт разработки на другом современном языке с готовностью перейти на Java
- Хорошее понимание алгоритмов и структур данных
- Интерес к распределённым системам, большим данным и высоконагруженным сервисам. Опыт работы с ними будет преимуществом
- Любовь к технически сложным задачам, оптимизации кода и поиску эффективных решений
Будет плюсом
- Опыт разработки поисковых или рекомендательных систем
- Знакомство с машинным обучением и инфраструктурой для ML
Мы предлагаем
Формат работы
Уровень
График работы
Поиск
Поиск понимает смысл поисковых запросов при помощи нейросетей, мы используем обширный граф знаний и компьютерное зрение, развиваем рекомендательную систему, детектируем спам и другой вредоносный контент.