Мы создаём сервис, где есть текстовые книги, аудиокниги, комиксы и синтетическая озвучка. Интегрируемся с другими продуктами Яндекса — Яндекс Музыкой, Кинопоиском, Алисой — и разрабатываем новые решения для книжных сценариев. Мы ещё молодой продукт, но каждый год растём: увеличивается количество ежедневных активных пользователей (DAU), нагрузка (RPS) на сервис и число новых функций.
В технологическом стеке мы отдаём предпочтение опенсорсу и внутренним инструментам Яндекса. Почти вся наша инфраструктура работает в Yandex Cloud. Мы используем Apache Kafka, Redis, PostgreSQL, S3, Data Transfer, Temporal. Пишем на чистом Kotlin и отдаём предпочтение легковесным библиотекам, а не тяжеловесным фреймворкам — например, Koin, jOOQ, Ktor, gRPC. Все наши сервисы взаимодействуют только через gRPC.
У нас есть замороженный Ruby-монолит, и потребуется работать с Ruby (15% времени): читать и писать код. Но мы фокусируемся на переписывании его частей, поэтому у нас много проектов, где нужно понимать System Design для проектирования новых компонентов. Из основных архитектурных паттернов мы применяем API Gateway (GraphQL), Event driven или Event sourcing (Kafka), модульные микросервисы, разделённые по DDD, и Saga (Temporal).
Обязанности:
Интеграция ML-инструментов
Вы будете интегрировать ML-инструменты в разные части продукта, собирать, доставлять и подготавливать данные для обучения.
Оптимизация кодовой базы
Вам предстоит оптимизировать и перестраивать кодовую базу, чтобы она справлялась с растущей нагрузкой и отвечала новым требованиям продукта. Потребуется пересмотреть и заново разработать ключевые составляющие сервиса.
Разработка фич
Вы будете работать над крупными продуктовыми задачами в развивающемся сервисе. Нужно довести проекты от сбора требований и архитектурного ревью до релиза в продакшен, соблюдая все требования к качеству, надёжности и наблюдаемости.
Больше о бэкенде в Яндексе — в канале Yandex for Backend
Ключевые навыки:
- Занимались серверной разработкой приложений более трёх лет
- Использовали реляционные СУБД, в том числе PostgreSQL
- Знаете Kotlin или владеете Java, но хотите изучить Kotlin
- Разбираетесь в базовых алгоритмах и структурах данных