О компании
Техплатформа Городских сервисов Яндекса развивает платформу Backend-Driven UI (BDUI) в Городских сервисах. Структура и внешний вид интерфейсов мобильных приложений формируются на сервере, а клиент получает готовое описание экранов и отрисовывает его нативно — без необходимости выпускать новую версию приложения. Команда работает с серверными инструментами BDUI: протоколами и контрактами описания UI, внутренними сервисами, SDK, инструментами отладки, валидации и генерации.
Обязанности
- Разрабатывать и развивать серверные инструменты BDUI на Java/Kotlin и Spring Boot.
- Создавать и оптимизировать микросервисы, формирующие BDUI-структуры для мобильных клиентов; обеспечивать производительность, надёжность и наблюдаемость сервисов.
- Проектировать API и контракты описания UI, следить за их версионированием и обратной совместимостью.
- Участвовать в развитии нативного SDK и клиентской библиотеки, интерпретирующей серверные описания UI.
- Разрабатывать валидаторы, генераторы, отладочные панели и эмуляторы клиента.
- Собирать требования у продуктовых команд и мобильных разработчиков, консультировать по контрактам и помогать с внедрением.
- Улучшать CI/CD, мониторинг и внутренние процессы разработки.
Требования
- Не менее четырёх лет коммерческой разработки на Java/Kotlin.
- Уверенное знание Java Core: многопоточность, коллекции, JVM, generics, streams.
- Практический опыт разработки на Kotlin.
- Глубокое знание Spring / Spring Boot и опыт разработки RESTful API.
- Понимание микросервисной архитектуры, паттернов BFF и клиент-серверного взаимодействия.
- Опыт проектирования контрактов: OpenAPI, Protobuf, JSON Schema.
- Уверенная работа с Gradle (или Maven), Docker, Kubernetes.
- Понимание принципов BDUI, DivKit или аналогичных решений.
- Готовность погружаться в клиентскую часть и смежные технологии; инициативность, ответственность и умение доводить задачи до результата.
- Будет плюсом опыт с Kotlin Multiplatform и/или Jetpack Compose, разработка SDK, внутренних платформ или библиотек для других команд, понимание ограничений мобильных платформ (память, сеть, версионность, деградация), опыт работы в платформенных командах, знакомство с OpenTelemetry, Grafana, Prometheus, Micrometer, знание C++ и/или Python для вспомогательных инструментов, скриптов, интеграций и прототипов.
Условия
- Офисный и гибридный форматы работы.