Назад
4 дня назад

Senior Go Developer

Формат работы
onsite
Тип работы
project
Грейд
senior
Английский
b2
Страна
Russia/Belarus
vacancy_detail.hirify_telegram_tooltipВакансия из Telegram канала -

Мэтч & Сопровод

Покажет вашу совместимость и напишет письмо

Описание вакансии

TL;DR
Senior Go Developer (Go, PostgreSQL, микросервисы): Разработка и миграция высоконагруженной backend-системы с Django на Go с акцентом на конкурентность, производительность баз данных и надёжность API. Фокус на проектировании микросервисов, интеграции Keycloak и Redis, реализации асинхронного взаимодействия через брокеры сообщений и покрытии кода тестами.
ID 3540
GO
Senior
РФ/РБ
"Старт 02.10.2026
Привлечение на 12 мес
зеркальный НДА
возраст от 28+ лет❗️❗️

Требования:
""""* Образование: высшее техническое (CS/инженерия) либо подтверждённый индустриальный трек. ❗️❗️❗️
* Опыт работы: от 5–7 лет в разработке на Go в продакшене.
* Ключевые навыки: Go (базовая конкурентность, работа с каналами и горутинами), SQL (PostgreSQL/MySQL), Docker, CI/CD (GitLab CI/GitHub Actions), базовые инструменты мониторинга (Prometheus/Grafana).
* Обязательно: опыт высоконагруженных систем, проектирование микросервисов, умение писать и поддерживать тесты, опыт работы с HTTP/gRPC API.
* Английский: B2 и выше.

Базовые требования (Hard Skills)

1.1. Владение языком Go (углубленный уровень)
• Глубокое понимание модели памяти, горутин и каналов. Опыт написания конкурентного кода без гонок данных (data races).
• Опыт работы с generics (дженериками) в Go.
• Понимание работы сборщика мусора (GC), умение читать профили памяти (pprof) и оптимизировать аллокации.
• Строгое следование идиоматике Go (Effective Go), опыт написания чистых и простых для поддержки интерфейсов.
• Написание исчерпывающих unit-тестов (табличный стиль), моков (gomock/testify) и интеграционных тестов.
1.2. Работа с базами данных (Миграция с Django ORM)
• PostgreSQL (обязательно): Глубокое знание SQL (оконные функции, CTE, индексы). Понимание различий между Django ORM и ручным SQL/sqlc/gorm.
• Опыт написания эффективных миграций схем данных (инструменты: golang-migrate, atlas).
• Умение использовать популярные ORM/Query builders (GORM, Ent, или sqlx/sqlc) и выбор подходящего инструмента под задачу (важно: не использовать ORM там, где нужен сырой SQL).
• Понимание N+1 Query и стратегий их устранения в Go (в отличие от select_related в Django).
1.3. Веб-фреймворки и API (Замена Django Views)
• Опыт работы с веб-фреймворками Go: Gin, Fiber, Echo и стандартный net/http с роутерами (chi, gorilla).
• Опыт проектирования RESTful API и написания спецификаций OpenAPI 3.0 / Swagger (генерация кода из спецификации или наоборот).
1.4. Авторизация и аутентификация (замена Django Authentication на Keycloak)
• Опыт интеграции Keycloak (или других SSO-решений на базе OAuth2/OIDC) в Go-приложения.
• Глубокое понимание протокола OIDC (OpenID Connect) : поток авторизации через authorization_code, refresh_token, валидация ID Token, работа с .well-known/openid-configuration.
• Умение реализовать middleware для валидации JWT-токенов, выпущенных Keycloak, с использованием публичных ключей (JWKS) — без внешних запросов к Keycloak на каждый запрос (кэширование JWKS).
• Опыт настройки RBAC/ABAC на основе ролей и клиентских скоупов, передаваемых в токене (аналогично группам/пермишенам Django).
• Умение организовать хранение сессий/состояния в Redis (например, для хранения refresh-токенов или user session) с корректной обработкой TTL и рефреш-стратегий.
• Настройка logout и инвалидации сессий как на стороне Keycloak, так и на стороне Go-сервиса (через Admin API или backchannel logout).
• Понимание безопасности: защита от CSRF, правильная настройка CORS при работе с SPA-фронтендом, использование http-only cookies для хранения access/refresh токенов.
1.5. Микросервисная архитектура и коммуникация
• Опыт с брокерами сообщений: Kafka, RabbitMQ или NATS (замена Celery + Redis на асинхронные воркеры на Go).
• Понимание паттернов: Outbox, Saga, CQRS (в контексте миграции бизнес-логики).

Будьте осторожны: если работодатель просит войти в их систему, используя iCloud/Google, прислать код/пароль, запустить код/ПО, не делайте этого - это мошенники. Обязательно жмите "Пожаловаться" или пишите в поддержку. Подробнее в гайде →

Текст вакансии взят без изменений

Источник -