💿 Сервис Диск (Java / Python)
Диск - облачный сервис для хранения фото, видео, документов и других файлов и обмена ими. Всего в Диске работает около 100 сотрудников: это разработчики бэкенда, фронтенда и мобильных приложений, менеджеры, аналитики, тестировщики и команда маркетинга. Бэкенд Диска - большая распределенная система из большого числа компонентов. Сервис Яндекс.Диск обрабатывает более 25 миллиардов запросов ежедневно! Мы активно растем и стараемся каждый день улучшать сервис. Команда бэкенда пока небольшая, но именно сейчас мы переживаем период бурного роста. Мы ищем опытного back-end разработчика, который станет частью команды и вместе с нами будет развивать Диск.
Ежедневно Диском пользуются миллионы пользователей из разных уголков планеты. Поэтому мы строим распределённый отказоустойчивый сервис, который держит большие нагрузки и работает с огромными объёмами данных. Мы делаем сервис от которого зависят жизни миллионов пользователей, чувствуем ответственность за них и понимаем что всё что мы делаем делает жизнь этих людей лучше.
✅ Что уже реализовали
- Ускорили операцию перемещения файлов в Диске на несколько порядков. Раньше она занимала часы в определенных случаях, а теперь — секунды. Это было довольно сложной задачей — поменять файловую операцию на уже работающем сервисе.
- 2,5 года мы переходили с MongoDB на PostgreSQL. Наша база находится под очень высокой нагрузкой, поэтому переехать так, чтобы пользователи ничего не заметили, было сложно. К тому же мы переводили неструктурированную систему в структурированную, а это само по себе — вызов.
🛠 Ближайшие планы
- Масштабирование оптимизация текущих механизмов файловой системы. Яндекс.Диск это зрелый большой сервис, который помогает пользователям уже много лет. За эти годы коренным образом изменилось то, как люди работают с контентом: генерируют и потребляют. И Диск не стоит на месте, мы постоянно работаем над оптимизацией и ускорением механизмов Диска, чтобы они наилучшим образом соответствовали ожиданиям пользователей.
- Разработка новых продуктовых фич. Несмотря на то что, что Диску уже много лет, он активно развивается и у нас огромный бэклог пользовательских фичей, ждущих разработчика, готового их спроектировать и реализовать.
- Качество сервиса. Мы постоянно работаем над тем чтобы сервис работал так как этого ожидают пользователи, исследуем проблемы, придумываем и реализуем их решения, строим инструменты для быстрой диагностики и мониторинга качества сервиса.
💪 Чем можем похвастаться
- Мы работаем с большими данными и высокой нагрузкой на файловую систему: сотни тысяч запросов на базу данных, база данных на сотни террабайт, а хранилище бинарных данных на сотни петабайт.
- У нас очень хорошая инженерная культура. Разработчик может получить экспертизу в строительстве больших нагруженных распределённых информационных систем. Если хочется разобраться в архитектуре сервисов, то Диск — лучшее место для этого.
- Наша команда занимается не только разработкой Диска, но и другими проектами. В рамках работы над диском можно поучаствовать в работе над Телемостом, Биллингом 360 и Директорией. Служба занимается разными сервисами, поэтому у разработчиков есть возможность периодически менять стеки.
👨💻👩💻 Команда и подходы к разработке
🌍 У нас продуктовый и проектный подход к разработке - разработчики плотно общаются с продуктом, предлагают технические решения, отвечают за сходимость проектов. Это очень интересно, есть реальная возможность влиять на то, что в итоге увидят пользователи, но требует большой самостоятельности и ответственности.
🌏 У нас сильная команда опытных разработчиков, и любой проект у нас проходит архитектурное ревью, в котором участвует вся команда. У нас нет выделенной роли архитектора, так что архитектуру своих проектов разработчики придумывают самостоятельно.
🌏 Команда распределена географически, поэтому мы привыкли работать в удаленном формате, но часть команды сидит в офисах, куда можно всегда прийти пообщаться с коллегами вживую. Выпить пива и поиграть в шахматы или покер.
📚 Что по стеку
В Диске 2 стека - Java☕️ и Python🐍. Ядро файловой системы написано на Python, вокруг ядра написано много микросервисов на Java 17. В качестве основных СУБД мы используем PostgreSQL и YDB.
Соответственно, часть команды джависты, часть питонисты, но кто-то пишет на обоих языках. В целом, нам не важно на каком языке сейчас пишешь ты - мы считаем, что язык - это лишь инструмент и его можно менять.