Роли · Backend Developer (Go) · Middle

Что должен уметь Middle }

32 ключевых навыков, всего 71. Ожидания по каждому навыку и что меняется на следующем уровне.

На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.

32ключевых навыков
39дополнительных навыков
7областей
0%на уровне Продвинутый или Эксперт
Оценить себя как Middle Полная матрица роли

Ключевые навыки для Middle

Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.

Основы программирования · 8

Самостоятельно применяет алгоритмическое мышление в Go: выбирает эффективную сортировку/поиск для обработки данных, понимает последствия планирования горутин, оценивает паттерны конкурентных алгоритмов с каналами. Анализирует сложность пайплайнов обработки данных в Go-сервисах.

Самостоятельно применяет асинхронное программирование в Go: горутины с правильным управлением жизненным циклом, паттерны координации на основе каналов, проброс context для отмены. Понимает компромиссы между каналами и примитивами sync, паттерны fan-out/fan-in.

Самостоятельно применяет практики качества кода в Go-разработке. Пишет идиоматичный Go-код с правильной обработкой ошибок, использованием context и управлением горутинами. Понимает компромиссы между простотой дизайна интерфейсов и гибкостью. Ревьюит код на race conditions, утечки ресурсов и ясность структуры пакетов.

Самостоятельно применяет многопоточность в Go: горутины с правильным управлением жизненным циклом, каналы для безопасной межгорутинной коммуникации, sync.WaitGroup и context для координации, select для мультиплексирования операций каналов. Обосновывает компромиссы паттернов конкурентности Go на code review.

Самостоятельно применяет паттерны проектирования для Go: стратегия и адаптер на основе интерфейсов, функциональные опции для конфигурации, паттерн middleware для обработки HTTP, observer/pub-sub на основе каналов. Обосновывает Go-идиоматичные альтернативы паттернов на code review.

Принципы ООП и SOLID Применение

Самостоятельно применяет принципы SOLID в Go: контракты сервисов на основе интерфейсов, композиция вместо наследования через встраивание структур, единственная ответственность в слоях handler/service/repository. Понимает Go-специфичные компромиссы — неявные интерфейсы, принцип «принимай интерфейсы, возвращай структуры», дизайн маленьких интерфейсов.

Структуры данных Применение

Самостоятельно выбирает подходящие структуры данных в Go: слайсы vs массивы для работы с коллекциями, maps с правильными типами ключей, каналы для паттернов коммуникации горутин. Понимает компромиссы между pointer и value receivers для инкапсуляции данных и выделения памяти.

Понимает модель памяти Go: аллокация stack vs heap, escape analysis и сборщик мусора (concurrent tri-color mark-and-sweep). Профилирует использование памяти через pprof и runtime/metrics. Минимизирует heap-аллокации через семантику значений и sync.Pool. Понимает рост стека горутин и последствия для высоконагруженных сервисов.

Backend Development · 6

Паттерны Message Brokers Применение

Уверенно работает с message broker'ами на Go: реализует consumer groups в Kafka через segmentio/kafka-go или Sarama, настраивает NATS JetStream для durable messaging, применяет паттерны worker pool для параллельной обработки. Обрабатывает poison messages и настраивает retry с backoff.

Самостоятельно реализует задачи с Стратегии кэширования в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.

Apache Kafka Применение

Самостоятельно реализует задачи с Apache Kafka в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.

Go Web Frameworks Применение

Самостоятельно реализует задачи с Go Web Frameworks в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.

NATS / NATS JetStream Применение

Самостоятельно реализует задачи с NATS / NATS JetStream в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.

Redis Применение

Самостоятельно реализует задачи с Redis в gin/echo/fiber. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью go test.

Базы данных · 8

Индексирование БД Применение

Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

Миграции БД Применение

Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

Шардирование БД Применение

Работает с шардированными БД в Go: реализует shard-aware repository layer с connection pooling per shard, применяет consistent hashing для распределения данных, обрабатывает cross-shard queries через scatter-gather pattern. Использует context для propagation shard info.

ClickHouse Применение

Самостоятельно проектирует схемы и оптимизирует запросы с ClickHouse. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

Connection Pooling Применение

Оптимизирует connection pooling в Go: рассчитывает оптимальные pool параметры на основе workload, настраивает pgxpool для PostgreSQL с подготовленными выражениями, реализует connection health checking. Мониторит pool stats через sql.DBStats и custom metrics.

PostgreSQL Применение

Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует sqlx/GORM эффективно.

API и интеграции · 6

Поддерживает полную OpenAPI-документацию для Go-сервисов через swaggo: описание моделей, примеры запросов/ответов, аутентификация. Настраивает автоматическую генерацию документации в CI и публикацию через Swagger UI или Redoc.

Реализует версионирование API в Go-сервисах: параллельная поддержка нескольких версий через router groups, стратегия deprecation с Sunset-заголовками. Разрабатывает адаптеры между версиями и тесты backward compatibility через go test.

gRPC и Protocol Buffers Применение

Уверенно разрабатывает gRPC-сервисы на Go: реализует все типы RPC (unary, server/client/bidirectional streaming), настраивает interceptors для трейсинга и метрик, использует metadata для передачи контекста. Применяет grpc-middleware для стандартных cross-cutting concerns.

gRPC и Protocol Buffers Применение

Проектирует gRPC-сервисы на Go: определяет .proto-контракты с message validation, реализует unary и server-streaming RPC. Настраивает grpc-gateway для REST-прокси, применяет interceptors для логирования, аутентификации и трейсинга через OpenTelemetry.

Rate Limiting и Throttling Применение

Реализует 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.

REST API Design Применение

Проектирует REST API на Go с полной CRUD-функциональностью через Gin/Echo/Chi: валидация входных данных, пагинация, фильтрация, сортировка. Реализует middleware-цепочки для аутентификации, CORS, request ID и structured logging через zerolog/zap.

Облако и инфраструктура · 2

Основы сетей Применение

Применяет сетевые знания в Go-сервисах: настройка http.Transport с connection pooling и TLS, gRPC через HTTP/2, DNS-based service discovery. Отлаживает сетевые проблемы через tcpdump/wireshark, настраивает keep-alive и timeout-политики для Go HTTP-клиентов.

Terraform Применение

Пишет Terraform конфигурации для облачных ресурсов (VPC, EC2/Compute, RDS, S3). Использует modules для переиспользования. Работает с remote state (S3/GCS backend). Использует workspaces или directories для разных окружений. Импортирует существующие ресурсы.

Архитектура и проектирование · 1

CQRS Применение

Реализует CQRS в Go-проектах: создает отдельные пакеты для commands и queries, использует interface-based dispatch для command/query bus, проектирует read-optimized структуры (denormalized views) отдельно от write models. Применяет Go channels для internal event propagation между моделями.

Observability и мониторинг · 1

SLI / SLO / SLA Применение

Определяет SLI для Go-сервисов — p99 задержку из метрик middleware, частоту ошибок из структурированных логов и доступность из health checks. Настраивает мониторинг SLI на базе Prometheus с recording rules. Понимает error budgets и управляет ими для итеративных релизов функций. Участвует в ротации дежурств Go-сервисов.

Дополнительные навыки

Команда их не оценивает, но они входят в самооценку и план развития.

Декомпозиция на микросервисыДокументация как кодИнтеграционное тестированиеОсновы System DesignПрактики безопасного кодаПроектирование WebSocket APIСканирование безопасности контейнеровСтруктурированное логированиеТипобезопасность и системы типовУправление дежурствамиAWSChatGPT / ClaudeClean ArchitectureCode ReviewCPU ProfilingCursor IDEDockerE2E тестированиеELK StackEvent-Driven ArchitectureGit AdvancedGitHub Actions / GitLab CIGitHub CopilotGraphQL DesignHighload архитектураJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMemory ProfilingOpenTelemetryOWASP и безопасность приложенийPerformance BudgetsPrometheus и GrafanaPrompt Engineering для кодаPython Web FrameworksSecrets ManagementTask QueuesTDD и BDDUnit-тестирование

Что меняется на Senior

71 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.

Страница Senior →
Прогоните это со всей командой
Самооценка плюс оценка руководителя и коллег по одной матрице, зоны роста и готовность к следующему уровню для каждого инженера. Team Pro бесплатно 14 дней; личные инструменты бесплатны всегда.
Попробовать с командой (14 дней бесплатно) Отправить тимлиду

} в открытой матрице компетенций: 71 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.