Мы ищем Go-разработчика как для развития существующих решений, так и для создания абсолютно новых. Разработчик будет участвовать в создании масштабируемых продуктов с ориентацией на пользователей. Вам предстоит работать в кросс-функциональной команде, совместно принимать технические решения и участвовать в обсуждении продуктовых.

Мы развиваем платформу потоковой обработки данных поверх YTsaurus (YT) с поддержкой гарантий exactly-once. Продукт позволяет надёжно обрабатывать потоки данных и строить на их основе критичные для бизнеса пайплайны. Команда отвечает за весь пользовательский путь продукта: разрабатывает интерфейс и пользовательские фичи, развивает обсервабилити и инструменты мониторинга, занимается надёжностью системы и её эксплуатацией, а также отвечает за деплой и доставку изменений. У вас будет возможность влиять не только на отдельные фичи, но и на то, каким в целом будет продукт. 

Задачи

  • Проектирование и разработка новой функциональности существующих сервисов 
  • Разрабатывать и развивать backend-сервисы платформы на Go
  • Работать с production-контуром: мониторинг, метрики, логирование, диагностика инцидентов, эксплуатационные улучшения
  • Кросс-командные взаимодействия над продуктовыми и техническими треками 
  • Придумывание отказоустойчивых, масштабируемых решений с хорошим observability 

Требования

  • Опыт коммерческой backend-разработки от пяти лет
  • Уверенный опыт разработки на Go или очень близкий опыт с готовностью быстро перейти на Go
  • Понимание сервисной архитектуры и практический опыт разработки production-сервисов 
  • Хорошее знание многопоточности, параллельных вычислений, конкурентного доступа к данным, graceful shutdown и работы с контекстами
  • Опыт проектирования API и межсервисного взаимодействия
  • Опыт работы с базами данных: проектирование схем, написание запросов, понимание индексов, транзакций и миграций
  • Понимание принципов построения отказоустойчивых и масштабируемых систем
  • Важно понимать принципы работы LLM и иметь практический опыт их использования в разработке: для анализа кода, проектирования решений, ускорения реализации и повышения личной эффективности
  • Умение понятно коммуницировать и договариваться с командой и смежными подразделениями