О проекте
Разрабатываем корпоративную платформу автоматизации бизнес-процессов. Система находится в активной разработке, архитектура выстроена, идём к первому релизу. Микро-сервисный подход, event-driven коммуникация, высокие требования к надёжности и наблюдаемости.
Чем будешь заниматься
- Разработка и поддержка микросервисов на Go
- Проектирование и реализация gRPC-контрактов (Protobuf)
- Работа с GraphQL API-шлюзом
- Написание SQL-запросов и миграций баз данных
- Интеграция с message broker
- Участие в код-ревью, написание тестов
- Работа в CI/CD пайплайне
Обязанности
- Разработка серверной части: создание бизнес-логики микросервисов, использование конкурентных возможностей Go (горутины, каналы, контексты)
- Проектирование API: разработка и поддержка gRPC-контрактов (Protobuf) для межсервисного взаимодействия; работа с GraphQL-шлюзом для клиентского API
- Работа с базами данных: проектирование схем, написание SQL-запросов, оптимизация запросов, написание миграций (PostgreSQL, Redis, Elasticsearch)
- Микросервисная архитектура: разработка и поддержка автономных сервисов, event-driven взаимодействие через Kafka
- Оптимизация производительности: обеспечение быстродействия и масштабируемости сервисов
- Тестирование и отладка: написание unit- и интеграционных тестов, покрытие кода
Требования
- Уверенное знание Go: синтаксис, стандартная библиотека, идиоматичный код
- Понимание конкурентности: goroutines, channels, sync-примитивы, context
- Опыт работы с gRPC и Protobuf
- Знание SQL, опыт работы с PostgreSQL без ORM (pgx или database/sql)
- Опыт работы с Kafka или аналогичным message broker
- Понимание Clean Architecture (domain / repository / service / transport)
- Опыт работы с Docker, docker-compose
- Умение работать в команде, участие в код-ревью
Будет плюсом:
- GraphQL (gqlgen, DataLoader)
- Elasticsearch
- Redis
- OpenTelemetry / distributed tracing
- GitLab CI
Условия
- Трудовой договор по ТК РУз (иные варианты не рассматриваются)
- Оклад (Аванс + ЗП)
- 100% дистанционный формат работы
- Выработка 165 часов в месяц в гибком графике