Понимает основы Алгоритмы и сложность на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Роли · Backend Developer (Go) · Junior
Что должен уметь Junior }
28 ключевых навыков, всего 71. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 8
Понимает основы Асинхронное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Качество кода и рефакторинг на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Многопоточное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Паттерны проектирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Принципы ООП и SOLID на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Структуры данных на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Управление памятью на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Go. Следует рекомендациям senior-разработчиков при решении задач.
Backend Development · 6
Понимает паттерны брокеров сообщений в Go: pub-sub, fan-out и work queues с channels и goroutines. Следует командным конвенциям для интеграции с NATS, Kafka или RabbitMQ через Go-клиентские библиотеки.
Использует Стратегии кэширования на базовом уровне в gin/echo/fiber. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Apache Kafka на базовом уровне в gin/echo/fiber. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Go Web Frameworks на базовом уровне в gin/echo/fiber. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует NATS / NATS JetStream на базовом уровне в gin/echo/fiber. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Redis на базовом уровне в gin/echo/fiber. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Базы данных · 7
Создаёт базовые B-tree индексы в PostgreSQL для Go-сервисов, понимает разницу между обычными и уникальными индексами. Использует EXPLAIN для проверки использования индексов в запросах, которые генерирует Go-приложение через pgx/sqlx.
Создаёт простые SQL-миграции для Go-сервисов через golang-migrate: добавление таблиц, столбцов, базовых индексов. Понимает принцип up/down миграций, запускает миграции локально и проверяет их идемпотентность перед коммитом.
Пишет эффективные SQL-запросы для Go-сервисов, избегая N+1 проблем при работе через GORM или sqlx. Использует EXPLAIN для понимания планов выполнения, применяет параметризованные запросы и базовую пагинацию через LIMIT/OFFSET.
Проектирует простые схемы данных для Go-сервисов: таблицы с корректными типами, внешние ключи, базовая нормализация до 3NF. Описывает модели через GORM-теги или SQL-файлы golang-migrate, понимает связи one-to-many и many-to-many.
Выполняет базовые аналитические запросы к ClickHouse из Go через clickhouse-go драйвер. Понимает колоночную модель хранения, использует простые SELECT с агрегациями и фильтрацией по партиционированным столбцам для эффективных выборок.
Понимает connection pooling в Go: знает что database/sql встроенно поддерживает пулинг, умеет настроить SetMaxOpenConns, SetMaxIdleConns, SetConnMaxLifetime. Понимает зачем ограничивать количество одновременных подключений.
Выполняет базовые SQL-запросы к PostgreSQL из Go-сервисов через pgx или database/sql. Понимает типы данных PostgreSQL, пишет простые SELECT/INSERT/UPDATE с параметризованными запросами для защиты от SQL-инъекций.
API и интеграции · 6
Документирует Go API-эндпоинты с помощью комментариев в формате swaggo: описывает параметры, типы ответов, HTTP-статусы. Генерирует Swagger/OpenAPI спецификацию через swag init и проверяет корректность документации в Swagger UI.
Понимает принципы версионирования API в Go-сервисах: URL-версионирование (/v1/, /v2/), заголовки Accept-Version. Реализует базовое версионирование через группы маршрутов в Gin/Chi, обеспечивая совместимость при добавлении новых полей.
Знает основы gRPC в Go-экосистеме: умеет генерировать код из .proto через protoc-gen-go-grpc, запускать простые unary-вызовы. Понимает структуру сгенерированного кода и принцип работы Protocol Buffers для сериализации.
Использует сгенерированные protobuf-клиенты и серверы в Go-проектах. Понимает базовую структуру .proto-файлов, типы данных protobuf, генерацию кода через protoc-gen-go и protoc-gen-go-grpc. Реализует простые unary RPC-методы.
Понимает основы rate limiting в Go: token bucket через golang.org/x/time/rate, throttling на основе middleware в Gin/Chi и базовое ограничение по IP. Следует командным паттернам для реализации rate limiter'ов с распределёнными счётчиками на Redis.
Создаёт простые REST-эндпоинты на Go с использованием Gin или Chi: обработка GET/POST-запросов, парсинг JSON через encoding/json, возврат корректных HTTP-статусов. Следует базовым REST-конвенциям именования ресурсов и использует middleware для логирования.
Облако и инфраструктура · 1
Понимает базовые сетевые концепции для Go-разработки: HTTP/HTTPS, DNS-резолвинг, TCP/UDP. Использует net/http клиент с таймаутами, понимает Docker-сети для связи контейнеров в docker-compose и базовую маршрутизацию запросов.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
71 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Шардирование БД: Осведомлённость → Применение · становится ключевым
- CQRS: Осведомлённость → Применение · становится ключевым
- SLI / SLO / SLA: Осведомлённость → Применение · становится ключевым
- Terraform: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Документирование API: Осведомлённость → Применение
- Индексирование БД: Осведомлённость → Применение
- Качество кода и рефакторинг: Осведомлённость → Применение
- Миграции БД: Осведомлённость → Применение
} в открытой матрице компетенций: 71 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.