Требуется Golang Senior разработчик в OUTKOD.

Локация/формат/занятость: РФ, удалённая работа, фуллтайм.

Условия: ЗП указана в объявлении.

Требования (ключевые):

  • Ядро Go: глубокое понимание конкурентности (goroutines, channels, select), sync-пакета (Mutex, RWMutex, WaitGroup, Pool, atomic), умение предотвращать race conditions.
  • Внутренности языка: модель памяти Go, стек vs куча, escape-анализ; работа с runtime (планировщик, управление памятью/GC, pprof, trace); интерфейсы (iface, eface); рефлексия (reflect); использование generics.
  • Тестирование: написание unit, integration, e2e тестов; использование testing, testify, gomock/mockery и табличных тестов.
  • Зависимости: go mod, семантическое версионирование (SemVer), понимание vendor.
  • Протоколы и API: опыт с gRPC (включая streams), REST (проектирование, документация OpenAPI/Swagger); знание GraphQL — плюс.
  • Базы данных: SQL (database/sql, ORM: GORM, sqlx; миграции: goose, migrate), NoSQL (Redis, MongoDB, Cassandra и т.п.).
  • Брокеры сообщений: Kafka, RabbitMQ, NATS.
  • Инфраструктура: Docker, Kubernetes; знание Service Mesh (Istio, Linkerd) — плюс; мониторинг и логирование: Prometheus, Grafana, структурированное логирование (zap, zerolog, slog), трейсинг (Jaeger, OpenTelemetry).
  • Архитектура и дизайн: микросервисные паттерны (SAGA, CQRS, Circuit Breaker, Retry, Backoff), проектирование отказоустойчивых и масштабируемых систем, DDD, декомпозиция монолита, Clean/Hexagonal Architecture, кеширование, Event-Driven Architecture.
  • Процессы разработки: владение Git (сложные слияния, rebase), CI/CD (настройка пайплайнов: GitLab CI, GitHub Actions, Jenkins), практика code review, agile (Scrum, Kanban), базовое понимание SRE (SLI/SLO/SLA, Error Budgets).
  • Желательно: опыт написания высокопроизводительных сетевых приложений (TCP/UDP, собственные протоколы), знание других языков (Python, Java, C++).