Применяет алгоритмическую экспертизу в Java-разработке: оптимизация stream-пайплайнов для пакетной обработки данных, проектирование параллельных алгоритмов с ForkJoinPool, эффективные алгоритмы поиска для in-memory хранилищ данных. Проектирует GC-friendly алгоритмы, минимизирующие churn объектов в latency-критичных сервисах.
Роли · Backend Developer (Java/Kotlin) · Senior
Что должен уметь Senior }
56 ключевых навыков, всего 74. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Senior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.
Ключевые навыки для Senior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 9
Проектирует async-архитектуры в Java: реактивные микросервисы с Project Reactor, стратегии миграции на виртуальные потоки, async событийно-управляемые архитектуры. Менторит команду по выбору между реактивными, виртуальными потоками и паттернами CompletableFuture.
Проектирует сложные generic API в Java: реализует type-safe heterogeneous containers (Class<T> как ключ), строит generic fluent DSL с phantom type-параметрами для compile-time валидации состояний. Применяет паттерн Typesafe Heterogeneous Container, проектирует generic annotation processors для compile-time валидации. Решает edge cases type erasure в фреймворках сериализации (Jackson, Gson TypeToken), реализует разрешение generic-типов через рефлексию (ParameterizedType, TypeVariable).
Проектирует стандарты качества кода для Java/Spring-проектов: конфигурации Checkstyle/PMD/SpotBugs, architectural decision records, контроль границ модулей. Рефакторит legacy-корпоративный код с использованием современных Java-паттернов (records, sealed classes, virtual threads). Формирует культуру ревью для best practices экосистемы Spring.
Обладает глубокой экспертизой в многопоточности Java: проектирует конкурентные системы с виртуальными потоками и структурированной конкурентностью, внедряет lock-free алгоритмы с AtomicReference и VarHandle, оптимизирует планирование потоков JVM для высокопроизводительных приложений. Менторит команду по продвинутым паттернам конкурентности Java.
Обладает глубокой экспертизой в паттернах проектирования для Java: проектирует доменно-ориентированные архитектуры с тактическими паттернами DDD, внедряет гексагональную архитектуру для тестируемой бизнес-логики, оптимизирует использование паттернов для производительности JVM. Менторит команду по enterprise Java-паттернам для микросервисных архитектур.
Применяет ООП/SOLID в Java/Spring-архитектуре: правильное управление жизненным циклом Spring Bean с DI, interface-based контракты сервисов, template method для переиспользуемой бизнес-логики. Проектирует чистые гексагональные/луковые архитектуры с использованием sealed interfaces Java, records для value objects и модульной системы для контроля границ.
Выбирает оптимальные структуры данных для Java-приложений: ConcurrentHashMap для потокобезопасного кэширования, TreeMap для упорядоченного доступа к данным, ArrayDeque для высокопроизводительных очередей. Оптимизирует использование коллекций с учётом накладных расходов памяти JVM и влияния на GC. Проектирует кастомные структуры данных с правильными контрактами equals/hashCode и поддержкой сериализации.
Обладает глубокой экспертизой в системе типов Java — проектирует доменные модели с использованием sealed interfaces, exhaustiveness pattern matching и generic type witnesses для типобезопасных API. Архитектурирует типобезопасные annotation-driven фреймворки и процессоры валидации на этапе компиляции. Менторит команду по продвинутым дженерикам, паттернам type token и эффективному использованию sealed-иерархий для доменного моделирования.
Backend Development · 7
Проектирует messaging-архитектуру для Java-микросервисов: реализует transactional outbox через Spring @Transactional + Debezium, настраивает exactly-once processing в Kafka с transactional producer, проектирует schema evolution через Confluent Schema Registry. Оптимизирует consumer throughput через batch listener.
Проектирует стратегии кеширования для высоконагруженных Java-сервисов: near-cache через Hazelcast/Coherence, write-behind для batch persistence, pre-warming при деплоях. Оптимизирует serialization overhead.
Проектирует event-driven архитектуру на Kafka: event sourcing, saga-паттерн для распределённых транзакций, Kafka Streams для stream processing. Оптимизирует throughput: batch size, compression, partition count. Обеспечивает exactly-once между сервисами.
Проектирует поисковые решения для Java-платформы: custom analyzers для русского/английского, nested/parent-child документы, aggregations для аналитики. Интегрирует через Spring Data Elasticsearch. Оптимизирует mapping и indexing pipeline.
Проектирует решения на основе Java Spring Ecosystem для production-систем. Оптимизирует производительность и масштабируемость. Выбирает между альтернативными подходами. Менторит команду.
Проектирует надёжную messaging-архитектуру: federation для geo-distributed систем, shovel для кросс-кластерной репликации, quorum queues для consistency. Оптимизирует throughput и обеспечивает message ordering.
Проектирует распределённое кеширование: Redis Cluster для горизонтального масштабирования, Lua-скрипты для атомарных операций, Redis Streams для event-driven кешинга. Оптимизирует memory footprint через compression и hash-pack.
Базы данных · 9
Проектирует стратегию индексирования для Java-сервисов: partial indexes, covering indexes, GIN для JSONB. Анализирует index bloat и автоматизирует REINDEX. Настраивает мониторинг unused indexes через pg_stat_user_indexes.
Проектирует safe-миграции для production: online schema changes через pt-online-schema-change/gh-ost, zero-downtime column renames, backfill через batch updates. Автоматизирует миграции в CI/CD pipeline.
Оптимизирует SQL в Java-сервисах: переписывает JPA-запросы в native SQL/jOOQ для сложных аналитических операций. Настраивает Hibernate batch fetch size, second-level cache. Профилирует через p6spy и slow query log.
Проектирует доменные модели для Java-сервисов: Aggregates в JPA, Value Objects через @Embeddable, soft deletes через @Where, audit через @EntityListeners. Выбирает между JPA и документами (MongoDB) по контексту.
Проектирует транзакционную модель для Java-сервисов: distributed transactions через Saga, eventual consistency через events, compensating transactions. Оптимизирует transaction scope для минимизации lock contention.
Проектирует шардирование для Java-микросервисов: настраивает ShardingSphere с custom sharding algorithms, реализует distributed transactions через XA или eventual consistency patterns, проектирует global tables для справочных данных. Оптимизирует cross-shard pagination и sorting.
Проектирует connection management для Java-микросервисов: настраивает multi-datasource routing через AbstractRoutingDataSource с отдельными pools для read/write, реализует connection warming с initial pool size. Диагностирует connection pool starvation через thread dumps и JMX monitoring.
Проектирует MySQL-архитектуру для Java-сервисов: партиционирование, read replicas через Spring DataSource routing, connection pooling через HikariCP. Оптимизирует JPA-запросы: batch inserts, fetch strategies, native queries для аналитики.
Использует продвинутые возможности PostgreSQL в Java-сервисах: partitioning, materialized views, full-text search через tsvector. Настраивает connection pooling (PgBouncer + HikariCP). Оптимизирует ORM: batch operations, query hints, statistics.
API и интеграции · 6
Строит documentation pipeline: автогенерация из кода + ручные guides, versioned docs, changelog между версиями API. Интегрирует Spring REST Docs с Asciidoctor для production-ready документации.
Проектирует versioning-стратегию для Java-платформы: consumer-driven contracts через Pact, schema evolution через Protocol Buffers. Автоматизирует breaking change detection в CI. Управляет migration path между версиями.
Проектирует GraphQL-архитектуру: federation для микросервисов, subscriptions через WebSocket, caching стратегии. Оптимизирует query complexity и depth limiting. Интегрирует с Spring Security для field-level authorization.
Проектирует gRPC-архитектуру для Java-микросервисов: настраивает deadline propagation через Context, реализует retry-политики с экспоненциальным backoff, интегрирует с Micrometer для метрик и Brave/OpenTelemetry для трейсинга. Оптимизирует Netty-транспорт для высоких нагрузок.
Проектирует rate limiting для Java-микросервисов: настраивает Envoy rate limiting service с Java gRPC backend, реализует cost-based rate limiting через custom Bucket4j bandwidth definition. Проектирует graceful degradation с fallback responses при rate limit hit и circuit breaker интеграцию.
Проектирует API-архитектуру для Java-платформы: API Gateway (Spring Cloud Gateway), rate limiting, circuit breaker через Resilience4j. Определяет контракты через OpenAPI spec-first подход. Оптимизирует latency через async endpoints и reactive streams.
Облако и инфраструктура · 5
Проектирует сетевую инфраструктуру Java-платформы: service mesh для inter-service communication, mTLS, gRPC для low-latency. Оптимизирует network I/O через Netty и Project Reactor. Настраивает DNS-based routing.
Проектирует AWS-архитектуру для Java-платформы: EKS, API Gateway + Lambda для serverless endpoints, DynamoDB для high-throughput, Step Functions для workflows. Оптимизирует стоимость через Reserved Instances и Spot.
Проектирует Docker-стратегию для Java-платформы: base images, security scanning через Trivy, multi-arch builds. Оптимизирует startup time через CDS/AppCDS. Настраивает Buildpacks (Paketo) как альтернативу Dockerfile.
Проектирует K8s-архитектуру для Java-платформы: namespace-per-team, service mesh (Istio/Linkerd), GitOps через ArgoCD. Оптимизирует JVM в K8s: vertical pod autoscaling, JVM ergonomics для containers. Настраивает observability stack.
Проектирует модульную архитектуру Terraform для платформы Java-микросервисов. Создаёт переиспользуемые AWS-модули для ECS/EKS, RDS кластеров и инфраструктуры messaging. Конфигурирует Terragrunt для DRY конфигураций между средами и регионами. Внедряет Sentinel/OPA политики для governance инфраструктуры. Проектирует стратегию управления state. Автоматизирует детекцию drift для продуктовых систем.
DevOps и CI/CD · 1
Проектирует CI/CD для Java-платформы: reusable workflows, artifact promotion, canary deployments. Интегрирует quality gates: SonarQube, dependency check, container scanning. Оптимизирует build time через incremental compilation.
Тестирование и QA · 4
Проектирует integration-testing стратегию: слайс-тесты (@WebMvcTest, @DataJpaTest) vs full integration, contract testing через Pact, performance testing через Gatling. Оптимизирует CI время: parallel execution, test containers reuse.
Внедряет TDD/BDD-культуру в Java-проекте: outside-in TDD для domain layer, Cucumber + Spring для integration scenarios. Проектирует testable architecture: порты и адаптеры, dependency injection. Менторит по testing practices.
Проектирует архитектуру тестирования Testcontainers для Java-микросервисов: создание кастомных модулей, общие пулы контейнеров и контрактное тестирование с контейнеризированными сервисами. Оптимизирует производительность CI/CD-тестов с Testcontainers Cloud и стратегиями параллельного выполнения.
Проектирует стратегию unit-тестирования для Java-проекта: test fixtures через @ExtendWith, shared test utilities, ArchUnit для архитектурных правил. Оптимизирует test suite: параллельное выполнение, test categorization. Менторит по тестовым паттернам.
Безопасность · 3
Проектирует secure-by-default архитектуру: zero-trust между сервисами (mTLS), secrets management через Vault, audit logging. Автоматизирует security checks: SAST, DAST, SCA в CI pipeline. Менторит по security.
Проектирует auth-архитектуру для Java-платформы: centralized identity provider, token exchange между сервисами, fine-grained authorization (OPA/Cedar). Реализует multi-tenancy через JWT claims. Обеспечивает token security: rotation, revocation.
Проектирует security-архитектуру Java-платформы по OWASP: threat modeling (STRIDE), security testing в CI (OWASP ZAP, Snyk), dependency vulnerability scanning. Внедряет security-as-code через Spring Security DSL.
AI-ассистированная разработка · 1
Максимизирует продуктивность с Copilot: генерация сложных SQL/JPQL, Kubernetes манифестов, performance-тестов Gatling. Выстраивает workflow где AI ускоряет рутину, разработчик фокусируется на архитектуре.
Архитектура и проектирование · 5
Проектирует архитектуру Java-систем: декомпозиция на микросервисы, event-driven через Kafka, CQRS для high-read сервисов. Определяет API-контракты (OpenAPI, gRPC). Проводит capacity planning с JMH-бенчмарками.
Проектирует Java-приложения по Hexagonal Architecture: порты для бизнес-логики, адаптеры для JPA/Kafka/REST. Рефакторит legacy Spring-монолит к чистой архитектуре. Определяет anti-corruption layers между bounded contexts.
Проектирует CQRS-архитектуру для Java-микросервисов: выбирает между Axon Framework и Eventuate, реализует event sourcing с snapshot optimization, настраивает parallel projections для разных read stores (PostgreSQL, Elasticsearch, Redis). Обеспечивает consistency через idempotent event handlers.
Проектирует декомпозицию Java-микросервисов в масштабе: определяет границы bounded contexts с CQRS и event sourcing (Axon, Eventuate). Реализует паттерны service mesh (Istio со Spring Boot). Проектирует database-per-service с распределённой оркестрацией Saga. Оценивает компромиссы гранулярности декомпозиции: nano-services vs крупнозернистые сервисы для требований пропускной способности и задержки.
Применяет тактические паттерны DDD в Java/Spring: агрегаты с JPA entity lifecycle, Domain Events через Spring Events/Axon, Specification pattern. Проектирует aggregate roots с оптимистичной блокировкой и event-driven побочными эффектами. Реализует rich domain models, избегая anemic anti-pattern.
Observability и мониторинг · 4
Проектирует стратегию логирования для Java-платформы: correlation ID через Spring Cloud Sleuth/Micrometer Tracing, distributed tracing через OpenTelemetry. Настраивает log sampling для высоконагруженных сервисов.
Проектирует tracing-архитектуру: sampling strategies (head-based, tail-based), trace context propagation через Kafka, custom instrumentation для domain operations. Оптимизирует overhead и storage costs.
Проектирует мониторинг Java-платформы: RED-метрики для API, JVM-дашборды (heap, GC, threads), distributed tracing. Настраивает SLI/SLO дашборды. Оптимизирует cardinality. Внедряет alerting runbooks.
Определяет и реализует комплексные SLO для портфелей Java-сервисов с алертами burn rate, коррелированными с метриками здоровья JVM. Создаёт SLO-дашборды по Spring Boot сервисам с распределённой трассировкой через Sleuth/OpenTelemetry. Управляет error budgets с учётом пауз GC и насыщения пулов потоков. Проводит post-mortem анализ и проектирует graceful degradation с паттернами Resilience4j.
Контроль версий и коллаборация · 2
Проводит архитектурный review: оценивает влияние на систему, backward compatibility, performance impact. Ревьюит миграции, API-контракты, Spring-конфигурации. Менторит через review.
Определяет branching-стратегию: trunk-based development с feature flags, release branches для multi-version support. Настраивает git hooks для quality gates (Checkstyle, SpotBugs). Автоматизирует semantic versioning.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Lead
71 навыков получают более высокое ожидание или становятся ключевыми при переходе с Senior на Lead. Сначала самые большие скачки.
- Алгоритмы и сложность: Продвинутый → Эксперт
- Асинхронное программирование: Продвинутый → Эксперт
- Декомпозиция на микросервисы: Применение → Продвинутый
- Дженерики и параметрический полиморфизм: Продвинутый → Эксперт
- Документирование API: Продвинутый → Эксперт
- Индексирование БД: Продвинутый → Эксперт
- Интеграционное тестирование: Продвинутый → Эксперт
- Качество кода и рефакторинг: Продвинутый → Эксперт
- Миграции БД: Продвинутый → Эксперт
- Многопоточное программирование: Продвинутый → Эксперт
} в открытой матрице компетенций: 74 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.