Требуется 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++).