ID 3497 — Senior Golang Developer. Проект: Х5.
Условия: локация — любая; удалённо; фулл тайм.
Требования:
- Высшее техническое образование или подтверждённый индустриальный трек.
- Опыт разработки от 5–7 лет, из них 3–4 года на Go в продакшене.
- Глубокое владение Go: конкурентность, горутины, каналы, generics, модель памяти, понимание GC, pprof и оптимизации аллокаций, идиоматичный стиль (Effective Go).
- Опыт высоконагруженных систем, проектирование микросервисов, работа с HTTP/gRPC API.
- SQL: глубокие знания (PostgreSQL/MySQL), оконные функции, CTE, индексы; опыт миграций схем данных (golang-migrate, atlas).
- Контейнеризация и оркестрация: Docker, Kubernetes, health checks (liveness/readiness), Helm.
- CI/CD: настройка пайплайнов (GitLab CI, GitHub Actions), автоматизация деплоя и rollback.
- Мониторинг и логирование: Prometheus, Grafana, Jaeger, ELK; настройка алертов, SLO/SLI.
- Тестирование: unit, интеграционные тесты, property‑based тесты; использование моков (gomock, testify).
- Опыт работы с брокерами сообщений (Kafka, RabbitMQ, NATS) и паттернами распределённых систем (Outbox, Saga, CQRS).
- Опыт миграции с Django/Python на Go: чтение Django кода/ORM, трансляция моделей, backfill-скрипты, маршрутизация трафика между системами (Nginx/Kong, feature flags).
- Опыт интеграции SSO (Keycloak/OAuth2/OIDC), настройка logout/инвалидации сессий.
- Английский не ниже B2.
Дополнительные требования:
- Soft skills: системное мышление, коммуникация, проведение tech design сессий и RFC.
- Опыт миграции с Python на Go, знание Temporal/Cadence, Event Sourcing, Debezium/CDC, Foreign Data Wrappers.
- Наличие Open Source проектов на Go будет плюсом.
Задачи:
- Писать высокопроизводительный, безопасный и поддерживаемый код на Go с учётом конкурентности.
- Определять и реализовывать контракты API (REST, gRPC, GraphQL), согласовывать их с командами.
- Профилировать и оптимизировать производительность, работать с аллокациями и блокировками.
- Покрывать код unit и интеграционными тестами, проектировать тестовые данные и фикстуры.
- Работать со сложными схемами взаимодействия с БД, проектировать индексы и транзакции.
- Интегрировать сервисы с очередями сообщений, реализовывать механизмы ретраев и дедлайнов.
- Участвовать в проектировании и настройке CI/CD, контейнеризации и оркестрации.
- Внедрять и поддерживать мониторинг, логирование и трейсинг; участвовать в инцидентах и постмортемах.
- Вести код‑ревью, наставлять младших разработчиков и формировать стандарты качества кода.