YTsaurus — это целая инфраструктурная экосистема, состоящая из тесно переплетающихся друг с другом компонентов.

Слой хранения предоставляет несколько уровней: метаданные, статические таблицы для аналитических данных и транзакционное KV-хранилище для realtime-процессов.

Дата-инженеры Яндекса могут с помощью MapReduce-операций или SPYT-джобов обработать консистентный срез KV-словаря и статической таблицы с событиями. Над результатами этих вычислений менеджеры строят BI-витрины с помощью CHYT.

Аналитики выполняют ad hoc запросы над петабайтами логов на высокоуровневом языке YQL. ML-инженеры строят сложные графы вычислений для обучения моделей на GPU-кластерах под управлением YTsaurus. А команда YTsaurus обеспечивает всем надежную инфраструктуру, чтобы коллеги могли сосредоточиться на решении продуктовых задач.

Мы ждём опытных разработчиков для решения важных задач

Чем предстоит заниматься:

Масштабировать планировщик вычислительных ресурсов, который обслуживает десятки тысяч серверов.

Оптимизировать чтение данных для распределённых обучений на видеокартах.

Развивать инструменты сборки и тестирования YTsaurus для опенсорс.

YTsaurus в цифрах

40 тыс
серверов работают над управлением YT во всех дата-центрах Яндекса
2.2
экзабайта на HDD, SSD и NVME дисках используется для хранения информации
2млн
CPU-ядер обрабатывают данные 24×7

Команда

Мы искренне увлечены большими распределёнными системами и сложными техническими задачами. Многие из нас имеют академический опыт и до сих пор активно преподают — в МФТИ, ВШЭ, ШАД и других высших учебных заведениях. Несколько человек занимали топовые места в соревнованиях по спортивному программированию.

Мы следим за новостями индустрии и регулярно обсуждаем свежие доклады с VLDB, SIGMOD и CppCon, а иногда и сами выступаем, например на HighLoad++ и Hydra.

В команде сохраняется дух стартапа: дружно общаемся в рабочее и нерабочее время, вместе штурмуем задачи, экспериментируем и участвуем в CTF.

Работаем в Москве, Белграде, Ереване, Минске и других локациях, в том числе удалённо.

Ищем талантливых бэкенд-разработчиков с уверенным знанием структур данных и алгоритмов, а также опытом разработки распределённых систем. Пишем на C++, Java, Scala, Go/Python.

Ключевые разработчики

Технологии
Ядро системы написано на современном С++ с использованием собственной библиотеки асинхронного программирования на основе файберов. Мы не используем boost, но стараемся брать лучшее из кодовых баз таких проектов, как Chromium, LLVM, Folly и Abseil.
Мы поддерживаем и развиваем SDK для работы с YT на различных языках программирования: С++, Java, Golang и Python. Кроме того, мы работаем над более высокоуровневым API на основе Apache Beam.
Для запуска и изоляции пользовательского кода мы используем внутреннюю систему управления контейнерами Porto. 
Управление кластерами осуществляется с помощью внутренних систем менеджмента сервисов. Используя их API, мы разрабатываем инструменты для автоматизации регламентных операций на Python и Go. Кроме того, мы разрабатываем собственный оператор для разворачивания YT в Kubernetes.
Кого мы ищем
Разработчик на С++ в группу разработки CHYT
Мы ждем, что вы имеете уверенный опыт бэкенд-разработки на С++, понимаете базовые принципы работы баз данных и хотите попробовать себя в разработке распределённой системы с большой кодовой базой.
Руководитель команды разработки YP и YT ORM
Мы ждем, что вы имеете опыт промышленной разработки на С++, умеете работать в команде и готовы выстраивать рабочие взаимоотношения с коллегами из других подразделений.
Java-разработчик в команду Нирваны
Мы ждем, что вы писали веб-сервисы на Java, неравнодушны к системам контейнеризации и готовы самостоятельно организовывать командную разработку крупного сервиса.
Разработчик интеграции Apache Spark с YTsaurus
Мы ждем, что вы уверенно пишете на Scala или Java не меньше трёх лет, готовы учить другие языки, а так же понимаете принципы обработки больших данных, парадигму MapReduce и её наследников.

Процесс разработки

Планирование и распределение задач внутри команды происходит в свободной форме, мы работаем гибко, не привязываясь к методологиям. Задачи возникают не только как фичреквесты от пользователей, но часто внутри команды, в ответ на требования производительности, опыт эксплуатации и сравнение с конкурентами.

Мы практикуем обязательное code review, и тщательно следим за соблюдением единого стиля и подходов к разработке. Используем различные виды автотестов — юнит-тестирование, интеграционное тестирование, тестирование с использованием синтетической нагрузки и fault injection на тестовом окружении.

В Яндексе развёрнуто более 15 YT-кластеров, которые мы эксплуатируем и предоставляем другим командам as a service. В эксплуатации кластеров участвуют все разработчики: выкатывают релизы и хотфиксы, настраивают мониторинги, занимаются траблшутингом и помогают пользователям.

Статьи и выступления
YTsaurus: основная система для хранения и обработки данных Яндекса теперь open source
Highload++ 2021,
Игнатий Колесниченко
«Как сдержать самые сложные обещания: планирование batch-задач в системе Yandex.YT»
HighLoad 2021
Hydra 2020
Максим Бабенко «Erasure Coding at Scale»

Если вы хотите стать частью нашей команды — находите вакансию и отклика