Роли · Backend Developer (Java/Kotlin) · Junior

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

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

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

27ключевых навыков
45дополнительных навыков
5областей
0%на уровне Продвинутый или Эксперт
Оценить себя как Junior Полная матрица роли

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

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

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

Алгоритмы и сложность Осведомлённость

Понимает базовые алгоритмические концепции в Java: простые Stream-операции, базовая сортировка и поиск в коллекциях, алгоритмы на основе циклов для обработки данных. Следует руководству команды по выбору алгоритмов и применяет стандартные операции Java Collections Framework.

Понимает основы асинхронного программирования в Java: основы CompletableFuture, аннотации @Async в Spring, простые паттерны callback. Следует командным конвенциям дизайна async-методов и понимает базовую композицию Future.

Понимает основы дженериков Java: объявляет generic-классы и методы с type-параметрами, использует bounded type parameters (extends/super). Знает о type erasure и его последствиях — нельзя создать экземпляр T или использовать instanceof с generic-типами. Корректно применяет generic-коллекции (List<String>, Map<K,V>) и избегает raw types в новом коде.

Понимает базовые принципы качества кода для Java/Spring-разработки. Следует командным стандартам кодирования и правилам Checkstyle/PMD. Пишет простые, чистые методы по конвенциям именования Java и паттернам Spring. Принимает обратную связь на код-ревью и применяет принципы SOLID в базовых реализациях.

Понимает основы многопоточности в Java: основы Thread и Runnable, ключевое слово synchronized и базовая блокировка, ExecutorService для управления пулами потоков, понимание volatile и гарантий happens-before. Следует командным конвенциям конкурентного кода в Spring-приложениях.

Паттерны проектирования Осведомлённость

Понимает базовые паттерны проектирования в Java: Singleton, Factory Method, Builder, Observer в обработке событий, внедрение зависимостей со Spring IoC-контейнером. Следует командным конвенциям использования паттернов в Spring Boot приложениях.

Принципы ООП и SOLID Осведомлённость

Понимает базовые концепции ООП в Java: классы, интерфейсы, абстрактные классы, инкапсуляция. Применяет простые принципы SOLID, следуя структуре Spring-проекта. Следует командным паттернам дизайна классов сервисов/контроллеров/репозиториев и аннотаций Spring DI.

Структуры данных Осведомлённость

Понимает базовые типы коллекций Java: ArrayList, HashMap, HashSet для типичных операций. Следует командным конвенциям для классов сущностей и структур DTO. Применяет простые структуры данных для CRUD-операций и обработки запросов/ответов контроллеров Spring.

Понимает основы системы типов Java — дженерики, ограниченные параметры типов и Optional для null safety. Следует принятым в команде соглашениям по типобезопасным коллекциям, паттернам enum и dependency injection на основе интерфейсов с правильными иерархиями типов.

Backend Development · 6

Стратегии кэширования Осведомлённость

Понимает зачем нужно кеширование в Java-приложениях. Применяет Spring Cache abstraction: @Cacheable для read-heavy операций. Инвалидирует кеш при обновлении данных. Знает разницу между local и distributed cache.

Apache Kafka Осведомлённость

Понимает основы Kafka для Java-сервисов: настройка Spring Kafka producer/consumer, концепции topic/partition и сериализация сообщений с Avro/JSON. Следует командным практикам конфигурации consumer groups и базовой обработки ошибок при обработке сообщений.

Elasticsearch / OpenSearch Осведомлённость

Использует Elasticsearch / OpenSearch на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.

Java Spring Ecosystem Осведомлённость

Использует Java Spring Ecosystem на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.

RabbitMQ Осведомлённость

Работает с RabbitMQ через Spring AMQP: отправляет сообщения в exchange, слушает очереди через @RabbitListener. Понимает exchange types (direct, topic, fanout). Обрабатывает ошибки через retry и DLQ.

Redis Осведомлённость

Использует Redis через Spring Data Redis для кеширования: @Cacheable, @CacheEvict, @CachePut. Работает со строками, хешами, списками. Понимает TTL и eviction policies. Настраивает RedisTemplate с Jackson serializer.

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

Индексирование БД Осведомлённость

Создаёт индексы для ускорения частых запросов. Понимает разницу между B-tree, hash и GIN индексами. Использует EXPLAIN для проверки использования индексов. Знает о влиянии индексов на скорость записи.

Миграции БД Осведомлённость

Пишет миграции через Flyway/Liquibase: CREATE TABLE, ALTER TABLE, добавление индексов и constraints. Понимает версионирование миграций и rollback. Тестирует миграции на dev-среде.

Оптимизация запросов Осведомлённость

Понимает N+1 проблему в JPA и решает через fetch join / @EntityGraph. Использует EXPLAIN ANALYZE для анализа запросов. Избегает SELECT * и загрузки ненужных связей.

Проектирует простые схемы данных с JPA: Entity, связи @OneToMany/@ManyToMany, embedded types. Понимает нормализацию. Использует @Enumerated, @Temporal для типизации колонок.

Понимает ACID-свойства и уровни изоляции. Использует @Transactional в Spring для управления транзакциями. Обрабатывает deadlocks и optimistic locking через @Version. Знает разницу между read committed и repeatable read.

MySQL / MariaDB Осведомлённость

Пишет SQL-запросы для CRUD-операций через JPA/Hibernate. Создаёт таблицы, индексы, foreign keys. Понимает нормализацию до 3NF. Работает с MySQL Workbench для анализа данных.

PostgreSQL Осведомлённость

Работает с PostgreSQL через JPA/Hibernate: маппинг сущностей, JPQL-запросы, native queries. Использует pgAdmin для анализа данных и схем. Понимает типы данных PostgreSQL: UUID, JSONB, arrays.

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

Документирование API Осведомлённость

Документирует API через SpringDoc/OpenAPI аннотации: @Operation, @ApiResponse, @Schema. Описывает параметры, тела запросов и примеры ответов. Поддерживает Swagger UI в актуальном состоянии.

Понимает зачем нужно версионирование API. Работает с разными версиями через URL path (/v1, /v2). Поддерживает backward compatibility при добавлении новых полей. Знает семантическое версионирование.

GraphQL Design Осведомлённость

Создаёт простые GraphQL-схемы через Spring for GraphQL: типы, queries, mutations. Реализует resolvers с @QueryMapping/@MutationMapping. Понимает разницу между REST и GraphQL. Тестирует через GraphiQL.

REST API Design Осведомлённость

Создаёт REST endpoints через Spring MVC: @RestController, @GetMapping/@PostMapping, @RequestBody/@PathVariable. Возвращает правильные HTTP-статусы. Валидирует input через @Valid и Bean Validation.

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

Основы сетей Осведомлённость

Понимает TCP/IP, DNS, HTTP/HTTPS в контексте Java-приложений. Настраивает Spring Boot: server.port, ssl, compression. Диагностирует проблемы соединения. Понимает CORS и настраивает через WebMvcConfigurer.

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

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

Документация как кодИнтеграционное тестированиеОсновы System DesignПаттерны Message BrokersПрактики безопасного кодаПроектирование WebSocket APIСканирование безопасности контейнеровСтруктурированное логированиеУправление дежурствамиУправление памятьюШардирование БДAWSChatGPT / ClaudeClean ArchitectureCode ReviewConnection PoolingCPU ProfilingCQRSCursor IDEDockerE2E тестированиеELK StackEvent-Driven ArchitectureGit AdvancedGitHub Actions / GitLab CIGitHub CopilotgRPC и Protocol BuffersgRPC и Protocol BuffersJWT / OAuth2 / OIDCKubernetes CoreLatency OptimizationMemory ProfilingOpenTelemetryOWASP и безопасность приложенийPerformance BudgetsPrometheus и GrafanaPrompt Engineering для кодаPython Web FrameworksRate Limiting и ThrottlingSecrets ManagementSLI / SLO / SLATDD и BDDTerraformTestContainersUnit-тестирование

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

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

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

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