Мы ищем Go-разработчика как для развития существующих решений, так и для создания абсолютно новых. Разработчик будет участвовать в создании масштабируемых продуктов с ориентацией на пользователей. Вам предстоит работать в кросс-функциональной команде, совместно принимать технические решения и участвовать в обсуждении продуктовых.
Мы развиваем платформу потоковой обработки данных поверх YTsaurus (YT) с поддержкой гарантий exactly-once. Продукт позволяет надёжно обрабатывать потоки данных и строить на их основе критичные для бизнеса пайплайны. Команда отвечает за весь пользовательский путь продукта: разрабатывает интерфейс и пользовательские фичи, развивает обсервабилити и инструменты мониторинга, занимается надёжностью системы и её эксплуатацией, а также отвечает за деплой и доставку изменений. У вас будет возможность влиять не только на отдельные фичи, но и на то, каким в целом будет продукт.Задачи
- Проектирование и разработка новой функциональности существующих сервисов
- Разрабатывать и развивать backend-сервисы платформы на Go
- Работать с production-контуром: мониторинг, метрики, логирование, диагностика инцидентов, эксплуатационные улучшения
- Кросс-командные взаимодействия над продуктовыми и техническими треками
- Придумывание отказоустойчивых, масштабируемых решений с хорошим observability
Требования
- Опыт коммерческой backend-разработки от пяти лет
- Уверенный опыт разработки на Go или очень близкий опыт с готовностью быстро перейти на Go
- Понимание сервисной архитектуры и практический опыт разработки production-сервисов
- Хорошее знание многопоточности, параллельных вычислений, конкурентного доступа к данным, graceful shutdown и работы с контекстами
- Опыт проектирования API и межсервисного взаимодействия
- Опыт работы с базами данных: проектирование схем, написание запросов, понимание индексов, транзакций и миграций
- Понимание принципов построения отказоустойчивых и масштабируемых систем
- Важно понимать принципы работы LLM и иметь практический опыт их использования в разработке: для анализа кода, проектирования решений, ускорения реализации и повышения личной эффективности
- Умение понятно коммуницировать и договариваться с командой и смежными подразделениями