Мы развиваем внутреннюю платформу, которая упрощает разработку, запуск и эксплуатацию сервисов в масштабной распределённой инфраструктуре. Наша команда создаёт собственные инфраструктурные решения, которыми пользуются другие инженерные команды компании:
- ServiceMesh — платформа управления межсервисным взаимодействием на базе Envoy и Consul, обеспечивающая маршрутизацию трафика, балансировку нагрузки, отказоустойчивость и наблюдаемость
- ServiceHost — система декларативного управления обработкой запросов с помощью графов взаимодействия микросервисов
- Инструменты автоматизированной диагностики — решения для анализа инцидентов и поиска первопричин проблем в распределённых системах
- Другие платформенные инструменты — решения для управления инфраструктурой, повышения надёжности сервисов и улучшения Developer Experience
Мы ищем сильного backend-разработчика, которому интересно создавать инфраструктурные продукты, решать нетривиальные задачи в распределённых системах и влиять на работу большого количества сервисов.
Задачи
- Разрабатывать и развивать компоненты внутренней платформы: ServiceMesh, ServiceHost и инструменты автоматизации эксплуатации
- Проектировать и реализовывать высоконагруженные, отказоустойчивые сервисы и инфраструктурные компоненты
- Развивать механизмы управления межсервисным взаимодействием: балансировку нагрузки, маршрутизацию, retry, failover и circuit breaking
- Развивать декларативное управление обработкой запросов, механизмы исполнения графов взаимодействия микросервисов и обеспечения их отказоустойчивости
- Разрабатывать инструменты для диагностики инцидентов, анализа поведения распределённых систем и автоматизации поиска первопричин проблем
- Улучшать производительность, масштабируемость и надёжность платформенных решений
- Разрабатывать API и интеграции с существующей инфраструктурой
- Участвовать в проектировании архитектуры новых компонентов, обсуждении технических решений и code review
- Взаимодействовать с командами разработки и эксплуатации, помогая решать сложные инфраструктурные задачи
Требования
- Опыт коммерческой backend-разработки от четырёх лет
- Уверенное владение Go или C++, понимание принципов разработки производительных серверных приложений
- Хорошее понимание устройства распределённых систем, принципов их масштабирования и обеспечения отказоустойчивости
- Знание сетевого взаимодействия: TCP/IP, HTTP, gRPC, балансировка нагрузки, таймауты и повторные запросы
- Опыт разработки многопоточных или асинхронных приложений
- Уверенные навыки работы с Linux, понимание процессов, сетевого стека и механизмов управления ресурсами
- Опыт проектирования API и взаимодействия между сервисами
- Умение разбираться в сложных технических проблемах, анализировать производительность и находить причины сбоев
- Самостоятельность в принятии технических решений и ответственность за результат
Будет плюсом
- Опыт разработки инфраструктурных платформ, Service Mesh, систем оркестрации или Service Discovery
- Знакомство с Envoy, Consul, xDS и принципами работы прокси-серверов
- Опыт работы с облачными платформами и системами оркестрации сервисов, понимание принципов управления размещением, масштабированием и жизненным циклом приложений
- Понимание механизмов load balancing, health checking, circuit breaking и traffic management
- Опыт разработки control plane / data plane компонентов
- Опыт работы с Prometheus, Grafana, OpenTelemetry и инструментами распределённой трассировки
- Опыт профилирования и оптимизации производительности приложений
- Интерес к автоматизации эксплуатации, диагностике инцидентов и применению AI/LLM для решения инфраструктурных задач
Что делает задачи интересными:
- Работа с инфраструктурой, от которой зависит большое количество production-сервисов
- Возможность разрабатывать собственные платформенные решения, а не только интегрировать готовые инструменты
- Сложные инженерные задачи на пересечении backend-разработки, сетевого взаимодействия и распределённых систем
- Возможность влиять на архитектуру, производительность и надёжность сервисов в масштабах компании
- Работа над инструментами, которые непосредственно улучшают опыт разработки и эксплуатации для других инженерных команд