Выберите текущую позицию
Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.
Путь развития
Junior
0-2 года
Ответственность: Разработка HTTP-хендлеров и middleware. Написание unit-тестов. Работа с SQL через database/sql или GORM. Исправление багов. Изучение идиом Go (goroutines, channels).
Ключевые навыки:
Middle
2-5 лет
Ответственность: Самостоятельная разработка микросервисов. Проектирование gRPC/REST API. Работа с конкурентностью (goroutines, channels, sync). Профилирование и оптимизация. Code review.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Senior
5-8 лет
Ответственность: Проектирование архитектуры высоконагруженных сервисов. Глубокая оптимизация (pprof, escape analysis). Разработка shared-библиотек. Выбор между Go и другими языками для задач.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Lead / Staff
7-12 лет
Ответственность: Архитектура микросервисной платформы. Стандартизация подходов к разработке на Go. Проектирование gRPC service mesh. Координация с Platform Engineering. Roadmap.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Principal
10+ лет
Ответственность: Архитектурные решения на уровне компании. Стандарт Go best practices. Контрибуции в open-source Go-экосистему. Масштабирование инженерной организации.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Gap-анализ: навыки для развития
Для перехода на следующий уровень необходимо развить:
Самостоятельно реализует задачи с Apache Kafka в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.
Самостоятельно проектирует схемы и оптимизирует запросы с ClickHouse. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Оптимизирует connection pooling в Go: рассчитывает оптимальные pool параметры на основе workload, настраивает pgxpool для PostgreSQL с подготовленными выражениями, реализует connection health checking. Мониторит pool stats через sql.DBStats и custom metrics.
Реализует CQRS в Go-проектах: создает отдельные пакеты для commands и queries, использует interface-based dispatch для command/query bus, проектирует read-optimized структуры (denormalized views) отдельно от write models. Применяет Go channels для internal event propagation между моделями.
Самостоятельно реализует задачи с Go Web Frameworks в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.
Проектирует gRPC-сервисы на Go: определяет .proto-контракты с message validation, реализует unary и server-streaming RPC. Настраивает grpc-gateway для REST-прокси, применяет interceptors для логирования, аутентификации и трейсинга через OpenTelemetry.
Уверенно разрабатывает gRPC-сервисы на Go: реализует все типы RPC (unary, server/client/bidirectional streaming), настраивает interceptors для трейсинга и метрик, использует metadata для передачи контекста. Применяет grpc-middleware для стандартных cross-cutting concerns.
Самостоятельно реализует задачи с NATS / NATS JetStream в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.
Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Реализует rate limiting в Go-сервисах: использует go-redis/redis_rate для distributed rate limiting, реализует per-key limiting с custom key extraction (IP, user ID, API key). Применяет GCRA (Generic Cell Rate Algorithm) для smooth traffic shaping и настраивает response headers.
Самостоятельно реализует задачи с Redis в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.
Проектирует REST API на Go с полной CRUD-функциональностью через Gin/Echo/Chi: валидация входных данных, пагинация, фильтрация, сортировка. Реализует middleware-цепочки для аутентификации, CORS, request ID и structured logging через zerolog/zap.
Определяет SLI для Go-сервисов — p99 задержку из метрик middleware, частоту ошибок из структурированных логов и доступность из health checks. Настраивает мониторинг SLI на базе Prometheus с recording rules. Понимает error budgets и управляет ими для итеративных релизов функций. Участвует в ротации дежурств Go-сервисов.
Пишет Terraform конфигурации для облачных ресурсов (VPC, EC2/Compute, RDS, S3). Использует modules для переиспользования. Работает с remote state (S3/GCS backend). Использует workspaces или directories для разных окружений. Импортирует существующие ресурсы.
Самостоятельно применяет алгоритмическое мышление в Go: выбирает эффективную сортировку/поиск для обработки данных, понимает последствия планирования горутин, оценивает паттерны конкурентных алгоритмов с каналами. Анализирует сложность пайплайнов обработки данных в Go-сервисах.
Самостоятельно применяет асинхронное программирование в Go: горутины с правильным управлением жизненным циклом, паттерны координации на основе каналов, проброс context для отмены. Понимает компромиссы между каналами и примитивами sync, паттерны fan-out/fan-in.
Поддерживает полную OpenAPI-документацию для Go-сервисов через swaggo: описание моделей, примеры запросов/ответов, аутентификация. Настраивает автоматическую генерацию документации в CI и публикацию через Swagger UI или Redoc.
Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Самостоятельно применяет практики качества кода в Go-разработке. Пишет идиоматичный Go-код с правильной обработкой ошибок, использованием context и управлением горутинами. Понимает компромиссы между простотой дизайна интерфейсов и гибкостью. Ревьюит код на race conditions, утечки ресурсов и ясность структуры пакетов.
Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Самостоятельно применяет многопоточность в Go: горутины с правильным управлением жизненным циклом, каналы для безопасной межгорутинной коммуникации, sync.WaitGroup и context для координации, select для мультиплексирования операций каналов. Обосновывает компромиссы паттернов конкурентности Go на code review.
Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Применяет сетевые знания в Go-сервисах: настройка http.Transport с connection pooling и TLS, gRPC через HTTP/2, DNS-based service discovery. Отлаживает сетевые проблемы через tcpdump/wireshark, настраивает keep-alive и timeout-политики для Go HTTP-клиентов.
Уверенно работает с message broker'ами на Go: реализует consumer groups в Kafka через segmentio/kafka-go или Sarama, настраивает NATS JetStream для durable messaging, применяет паттерны worker pool для параллельной обработки. Обрабатывает poison messages и настраивает retry с backoff.
Самостоятельно применяет паттерны проектирования для Go: стратегия и адаптер на основе интерфейсов, функциональные опции для конфигурации, паттерн middleware для обработки HTTP, observer/pub-sub на основе каналов. Обосновывает Go-идиоматичные альтернативы паттернов на code review.
Самостоятельно применяет принципы SOLID в Go: контракты сервисов на основе интерфейсов, композиция вместо наследования через встраивание структур, единственная ответственность в слоях handler/service/repository. Понимает Go-специфичные компромиссы — неявные интерфейсы, принцип «принимай интерфейсы, возвращай структуры», дизайн маленьких интерфейсов.
Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.
Реализует версионирование API в Go-сервисах: параллельная поддержка нескольких версий через router groups, стратегия deprecation с Sunset-заголовками. Разрабатывает адаптеры между версиями и тесты backward compatibility через go test.
Самостоятельно реализует задачи с Стратегии кэширования в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.
Самостоятельно выбирает подходящие структуры данных в Go: слайсы vs массивы для работы с коллекциями, maps с правильными типами ключей, каналы для паттернов коммуникации горутин. Понимает компромиссы между pointer и value receivers для инкапсуляции данных и выделения памяти.
Понимает модель памяти Go: аллокация stack vs heap, escape analysis и сборщик мусора (concurrent tri-color mark-and-sweep). Профилирует использование памяти через pprof и runtime/metrics. Минимизирует heap-аллокации через семантику значений и sync.Pool. Понимает рост стека горутин и последствия для высоконагруженных сервисов.
Работает с шардированными БД в Go: реализует shard-aware repository layer с connection pooling per shard, применяет consistent hashing для распределения данных, обрабатывает cross-shard queries через scatter-gather pattern. Использует context для propagation shard info.