Workplace: Удалённый, Офис, Гибридный
Мы строим инфраструктурный сервис для работы со сложными взаимосвязанными данными поверх распределённого key-value-хранилища. Вы будете развивать API для работы со сложными моделями данных и создавать инструменты для управления большими базами и миграции массивов данных.
Мы в YT ORM строим инфраструктурный сервис для работы со сложными взаимосвязанными данными поверх распределённого key-value-хранилища. Если коротко — делаем так, чтобы сложные объектные модели можно было хранить надёжно, работали они быстро, а управление ими не приносило лишней головной боли.
Наш инструмент используют одни из самых живых и быстро развивающихся сервисов компании: рекламные платформы, системы управления кластерами и другие критически важные инфраструктурные компоненты. Здесь постоянно появляются новые задачи, растут объёмы данных и усложняются взаимосвязи между объектами.
Приходится одновременно думать о производительности запросов, согласованности данных, эволюции API и обратной совместимости: систему используют многие команды, и любое изменение должно быть быстрым, надёжным и предсказуемым. Иногда наша работа выглядит как «ускорить запрос в два раза», а иногда — как «понять, почему всё работало быстро, пока не начало работать правильно».
Основной язык разработки — C++. Python используем для тестов и вспомогательных скриптов.
Обязанности
Развитие API и возможностей объектной модели
Вы будете развивать API для работы со сложными моделями данных и помогать командам решать новые задачи с помощью YT ORM. Изменения должны делать инструмент удобнее и сохранять обратную совместимость для пользователей.
Оптимизация сложных запросов
Вам предстоит находить узкие места в обработке запросов и ускорять работу со взаимосвязанными объектами. Важно сохранять производительность под высокой нагрузкой и при росте объёмов данных, не нарушая гарантий согласованности.
Инструменты администрирования и миграции данных
Вы станете создавать инструменты для управления большими базами и миграции огромных массивов данных. Нужно продумывать, как менять структуру объектов и связи между ними, сохраняя целостность данных и предсказуемое поведение системы.
Динамический ОРМ
Ещё одна важная задача — развивать YT ORM как СУБД: создавать механизмы управления схемами, типами объектов, связями и индексами. Нужно сделать так, чтобы пользователи могли создавать и изменять модели данных во время работы системы, сохраняя целостность данных и совместимость с существующими приложениями.
Больше о бэкенде в Яндексе — в канале
Yandex for Backend
Требования
* Уверенно владеете C++ и готовы разрабатывать на нём высокопроизводительные системы
* Знаете Python на уровне, достаточном для написания тестов и вспомогательных скриптов
* Хорошо знаете алгоритмы и структуры данных, умеете оценивать сложность решений
* Умеете анализировать производительность, находить узкие места и проверять гипотезы измерениями
Будет плюсом
* Разрабатывали распределённые системы или сервисы с высокой нагрузкой
* Понимаете основные принципы работы БД: индексы, транзакции и согласованность
* Создавали библиотеки доступа к данным или инструменты администрирования баз
* Занимались нагрузочным тестированием или миграциями больших объёмов данных
Контакты работодателя доступны по кнопке «Откликнуться» после входа.
Зарплаты и спрос: Разработка
Сейчас в каталоге 10 606 вакансий по этому направлению, удалённо можно работать в 43%.
Зарплата здесь не указана. Медиана по направлению: 230 000 ₽ в месяц. У половины вакансий от 160 000 ₽ до 300 000 ₽ (вакансий с вилкой: 1 161).