Выберите текущую позицию

Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.

Путь развития

Junior

0-2 года

Текущий

Ответственность: Разработка REST endpoints с Spring Boot. Написание unit-тестов (JUnit/Mockito). Работа с JPA/Hibernate. Исправление багов. Изучение Spring экосистемы.

Ключевые навыки:

Apache Kafka Нужно
Elasticsearch / OpenSearch Нужно
GraphQL Design Нужно
Java Spring Ecosystem Нужно
MySQL / MariaDB Нужно
PostgreSQL Нужно
RabbitMQ Нужно
Redis Нужно
REST API Design Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Индексирование БД Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Оптимизация запросов Нужно
Основы сетей Нужно
Паттерны проектирования Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно

Middle

2-5 лет

Следующий

Ответственность: Проектирование и разработка микросервисов. Настройка Spring Security. Оптимизация JPA-запросов. Работа с message brokers. Code review. Миграция с Java на Kotlin.

Ключевые навыки:

Apache Kafka Нужно
Connection Pooling Нужно
CQRS Нужно
Elasticsearch / OpenSearch Нужно
GraphQL Design Нужно
gRPC и Protocol Buffers Нужно
Java Spring Ecosystem Нужно
MySQL / MariaDB Нужно
PostgreSQL Нужно
RabbitMQ Нужно
Rate Limiting и Throttling Нужно
Redis Нужно
REST API Design Нужно
SLI / SLO / SLA Нужно
Terraform Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Индексирование БД Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Оптимизация запросов Нужно
Основы сетей Нужно
Паттерны Message Brokers Нужно
Паттерны проектирования Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Шардирование БД Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Senior

5-8 лет

Ответственность: Проектирование distributed-систем. Тюнинг JVM (GC, memory). Reactive programming (WebFlux). Разработка библиотек и стартеров. Архитектура event-driven систем.

Ключевые навыки:

Apache Kafka Нужно
AWS Нужно
Clean Architecture Нужно
Code Review Нужно
Connection Pooling Нужно
CQRS Нужно
DDD тактические паттерны Нужно
Docker Нужно
Elasticsearch / OpenSearch Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
GraphQL Design Нужно
gRPC и Protocol Buffers Нужно
Java Spring Ecosystem Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
MySQL / MariaDB Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
RabbitMQ Нужно
Rate Limiting и Throttling Нужно
Redis Нужно
REST API Design Нужно
SLI / SLO / SLA Нужно
TDD и BDD Нужно
Terraform Нужно
TestContainers Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Декомпозиция на микросервисы Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Основы сетей Нужно
Паттерны Message Brokers Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Шардирование БД Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Lead / Staff

7-12 лет

Ответственность: Системная архитектура домена. Spring Cloud microservices. Стандарты для Java/Kotlin разработки. Координация с DevOps/Platform. Миграция legacy-монолитов.

Ключевые навыки:

Apache Kafka Нужно
AWS Нужно
Clean Architecture Нужно
Code Review Нужно
Connection Pooling Нужно
CQRS Нужно
DDD тактические паттерны Нужно
Docker Нужно
Elasticsearch / OpenSearch Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
GraphQL Design Нужно
gRPC и Protocol Buffers Нужно
Java Spring Ecosystem Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
MySQL / MariaDB Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
RabbitMQ Нужно
Rate Limiting и Throttling Нужно
Redis Нужно
REST API Design Нужно
TDD и BDD Нужно
Terraform Нужно
TestContainers Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Декомпозиция на микросервисы Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Паттерны Message Brokers Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Шардирование БД Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Principal

10+ лет

Ответственность: Enterprise архитектура. Выбор JVM vs non-JVM для новых систем. Стратегия модернизации. Стандарты компании. Работа с вендорами.

Ключевые навыки:

Apache Kafka Нужно
AWS Нужно
Clean Architecture Нужно
Code Review Нужно
Docker Нужно
Elasticsearch / OpenSearch Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
GraphQL Design Нужно
Java Spring Ecosystem Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
MySQL / MariaDB Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
RabbitMQ Нужно
Redis Нужно
REST API Design Нужно
TDD и BDD Нужно
TestContainers Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Gap-анализ: навыки для развития

Для перехода на следующий уровень необходимо развить:

Apache Kafka

Проектирует Kafka-потоки для Java-сервисов: выбор partition key для ordering, настройка consumer concurrency, exactly-once semantics через transactional producer. Обрабатывает poison pills через DLT. Настраивает Schema Registry для Avro/Protobuf.

Connection Pooling

Оптимизирует connection pooling в Java: настраивает HikariCP для production (leak detection, connection test, validation timeout), использует Spring Boot Actuator для мониторинга pool metrics. Разбирается в statement caching и prepared statement pooling через JDBC driver settings.

CQRS

Реализует CQRS в Java-проектах: использует Axon Framework для command/query separation, настраивает event handlers для обновления read models, применяет Spring Data для read-optimized repositories. Настраивает saga для координации распределённых команд.

Elasticsearch / OpenSearch

Самостоятельно реализует интеграцию Elasticsearch в Java через Spring Data Elasticsearch/RestHighLevelClient. Проектирует маппинги индексов, строит сложные запросы с QueryBuilders и реализует bulk-индексацию со стратегиями refresh.

GraphQL Design

Проектирует GraphQL API для Java-сервисов: custom scalars, input types, enum mapping. Реализует DataLoader для решения N+1. Настраивает pagination через Relay Connection spec. Обрабатывает ошибки через GraphQL error extensions.

gRPC и Protocol Buffers

Разрабатывает gRPC-сервисы на Java/Kotlin: реализует streaming RPC, настраивает ServerInterceptor для аутентификации и трейсинга, интегрирует с Spring Boot через grpc-spring-boot-starter. Использует async stub с ListenableFuture для неблокирующих вызовов.

Java Spring Ecosystem

Самостоятельно реализует задачи с Java Spring Ecosystem. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.

MySQL / MariaDB

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

PostgreSQL

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

RabbitMQ

Проектирует RabbitMQ-топологию для Java-сервисов: exchange-queue bindings, routing keys, priority queues. Настраивает publisher confirms и consumer acknowledgment. Реализует retry с exponential backoff. Мониторит через Management Plugin.

Rate Limiting и Throttling

Реализует rate limiting в Java-сервисах: использует Bucket4j с Hazelcast/Redis для distributed limiting, настраивает Resilience4j RateLimiter с custom configuration per endpoint. Реализует tiered rate limiting через Spring interceptors с extraction key из JWT claims.

Redis

Проектирует стратегии кеширования для Java-сервисов: cache-aside, write-through, cache stampede protection через Redisson locks. Использует Redis Pub/Sub для инвалидации. Настраивает Lettuce connection pool и sentinel для HA.

REST API Design

Проектирует RESTful API по best practices: HATEOAS, content negotiation, pagination через Pageable. Реализует версионирование через URL path или headers. Документирует через SpringDoc/Swagger. Обрабатывает ошибки через @ControllerAdvice.

SLI / SLO / SLA

Определяет SLI для Java-сервисов — p99 задержку из метрик Micrometer, частоту ошибок из трекинга исключений и индикаторы здоровья JVM (паузы GC, утилизация heap). Настраивает мониторинг SLI с Spring Boot Actuator и Prometheus. Понимает error budgets и участвует в ротации дежурств для надёжности Java-сервисов.

Terraform

Пишет Terraform-конфигурации для инфраструктуры Java-сервисов: EC2/ECS, RDS, ElastiCache, SQS/SNS. Использует модули для консистентности окружений dev/staging/prod. Работает с remote state (S3 бэкенд) и блокировкой state. Управляет переменными окружений через tfvars. Импортирует существующие AWS-ресурсы под управление Terraform.

Алгоритмы и сложность

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

Асинхронное программирование

Самостоятельно применяет асинхронное программирование в Java: композиция CompletableFuture, реактивные потоки с Project Reactor/RxJava, виртуальные потоки (Loom). Понимает компромиссы между моделями thread-per-request, реактивной и виртуальных потоков.

Дженерики и параметрический полиморфизм

Применяет продвинутые дженерики Java: использует wildcard-типы (? extends T, ? super T) по принципу PECS (Producer Extends, Consumer Super). Реализует generic utility-методы с рекурсивными type bounds (<T extends Comparable<T>>). Понимает bridge-методы, генерируемые type erasure, обрабатывает ограничения создания generic-массивов, применяет @SafeVarargs для предотвращения heap pollution в вариативных generic-методах.

Документирование API

Проектирует документацию API в Java-проектах: spec-first через OpenAPI YAML, code generation через openapi-generator. Документирует error codes, authentication flows, rate limits. Автоматизирует проверку актуальности через Spring REST Docs.

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

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

Качество кода и рефакторинг

Самостоятельно применяет практики качества кода в Java/Spring-разработке. Пишет чистый код по конвенциям Spring с правильным dependency injection и scoping бинов. Понимает компромиссы между использованием паттернов проектирования и простотой кода. Ревьюит код на паттерны обработки исключений, управление транзакциями и консистентность дизайна API.

Миграции БД

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

Многопоточное программирование

Самостоятельно применяет многопоточность в Java: CompletableFuture для async-композиции, конкурентные коллекции и атомарные операции, ReentrantLock и Condition для продвинутой синхронизации, виртуальные потоки (Project Loom) для легковесной конкурентности. Решает типовые задачи конкурентного программирования самостоятельно.

Оптимизация запросов

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

Основы сетей

Проектирует сетевую архитектуру для Java-сервисов: load balancing, reverse proxy (nginx/Envoy), service discovery (Eureka/Consul). Настраивает HTTP client timeouts и connection pooling в RestTemplate/WebClient.

Паттерны Message Brokers

Работает с messaging в Java-экосистеме: использует Spring Kafka для Kafka-интеграции, Spring Cloud Stream для абстракции от брокера, настраивает consumer groups и partition assignment. Применяет @KafkaListener с concurrency для параллельной обработки и настраивает error handler с retry.

Паттерны проектирования

Самостоятельно применяет паттерны проектирования в Java: стратегия со Spring profiles, шаблонный метод для воркфлоу сервисов, декоратор для потоковой обработки, observer со Spring Events. Понимает компромиссы между паттернами и конвенциями фреймворка в Spring Boot.

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

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

Проектирование схем данных

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

Стратегии версионирования API

Реализует версионирование API в Spring: URL-based, header-based, media type versioning. Поддерживает несколько версий одновременно через абстракции. Планирует deprecation lifecycle. Автоматизирует compatibility checks.

Стратегии кэширования

Проектирует многоуровневое кеширование: Caffeine (L1) + Redis (L2) через Spring Cache. Реализует cache-aside pattern с fallback на БД. Предотвращает cache stampede через distributed locks. Мониторит cache hit ratio.

Структуры данных

Самостоятельно выбирает подходящие структуры данных в Java: ArrayList vs LinkedList для последовательных данных, HashMap vs TreeMap для поиска по ключу, concurrent-коллекции для многопоточных сценариев. Понимает компромиссы между реализациями коллекций для различных паттернов доступа и мутации.

Типобезопасность и системы типов

Самостоятельно применяет возможности системы типов Java — wildcard generics, sealed classes для ADT и типобезопасные паттерны builder. Понимает компромиссы между стиранием типов и reified generics, raw types vs параметрический полиморфизм. Применяет типобезопасные паттерны с records, pattern matching и обработкой аннотаций при ревью кода.

Транзакции и конкурентность

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

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

Работает с шардированием в Java: реализует AbstractRoutingDataSource для multi-database routing, использует ShardingSphere для transparent sharding, настраивает HikariCP connection pools per shard. Применяет thread-local context для shard selection в Spring transactions.