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

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

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

Junior

0-2 года

Текущий

Ответственность: Выполнение задач под руководством старших коллег. Изучение кодовой базы, стандартов и процессов команды. Написание кода по спецификациям, исправление простых багов, написание тестов.

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

Apache Kafka Нужно
gRPC и Protocol Buffers Нужно
PostgreSQL Нужно
Redis Нужно
REST API Design Нужно
Scala Frameworks Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Иммутабельность и персистентные структуры Нужно
Индексирование БД Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Монады и функторы Нужно
Оптимизация запросов Нужно
Основы функционального программирования Нужно
Паттерны проектирования Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно

Middle

2-5 лет

Следующий

Ответственность: Самостоятельная разработка фич от декомпозиции до деплоя. Участие в code review. Оптимизация производительности. Менторинг junior-разработчиков. Участие в архитектурных обсуждениях.

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

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

Senior

5-8 лет

Ответственность: Проектирование архитектуры компонентов и сервисов. Решение сложных технических проблем. Ведение технического долга. Code review как gatekeeper качества. Менторинг middle-разработчиков. Выбор технологий для новых задач.

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

Apache Kafka Нужно
AWS Нужно
Code Review Нужно
Connection Pooling Нужно
CQRS Нужно
Docker Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
gRPC и Protocol Buffers Нужно
gRPC и Protocol Buffers Нужно
Highload архитектура Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
Property-Based Testing Нужно
Rate Limiting и Throttling Нужно
Redis Нужно
REST API Design Нужно
Scala Frameworks Нужно
Stream Processing Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Иммутабельность и персистентные структуры Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Монады и функторы Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Основы функционального программирования Нужно
Паттерны Message Brokers Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Шардирование БД Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Lead / Staff

7-12 лет

Ответственность: Техническое лидерство команды или направления. Проектирование системной архитектуры. Координация с другими командами. Формирование стандартов и best practices. Участие в найме. Планирование технического roadmap.

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

Apache Kafka Нужно
AWS Нужно
Code Review Нужно
Connection Pooling Нужно
CQRS Нужно
Docker Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
gRPC и Protocol Buffers Нужно
gRPC и Protocol Buffers Нужно
Highload архитектура Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
Property-Based Testing Нужно
Rate Limiting и Throttling Нужно
Redis Нужно
REST API Design Нужно
Scala Frameworks Нужно
Stream Processing Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Иммутабельность и персистентные структуры Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Монады и функторы Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Основы функционального программирования Нужно
Паттерны Message Brokers Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Шардирование БД Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

Principal

10+ лет

Ответственность: Техническая стратегия на уровне компании или домена. Кросс-организационное влияние. Решение системных проблем бизнеса через технологии. Менторинг lead-инженеров. Публичное представление компании.

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

Apache Kafka Нужно
AWS Нужно
Code Review Нужно
Docker Нужно
Git Advanced Нужно
GitHub Actions / GitLab CI Нужно
GitHub Copilot Нужно
gRPC и Protocol Buffers Нужно
Highload архитектура Нужно
JWT / OAuth2 / OIDC Нужно
Kubernetes Core Нужно
OpenTelemetry Нужно
OWASP и безопасность приложений Нужно
PostgreSQL Нужно
Prometheus и Grafana Нужно
Property-Based Testing Нужно
Redis Нужно
REST API Design Нужно
Scala Frameworks Нужно
Stream Processing Нужно
Unit-тестирование Нужно
Алгоритмы и сложность Нужно
Асинхронное программирование Нужно
Дженерики и параметрический полиморфизм Нужно
Документирование API Нужно
Иммутабельность и персистентные структуры Нужно
Индексирование БД Нужно
Интеграционное тестирование Нужно
Качество кода и рефакторинг Нужно
Миграции БД Нужно
Многопоточное программирование Нужно
Монады и функторы Нужно
Оптимизация запросов Нужно
Основы System Design Нужно
Основы функционального программирования Нужно
Паттерны проектирования Нужно
Практики безопасного кода Нужно
Принципы ООП и SOLID Нужно
Проектирование схем данных Нужно
Стратегии версионирования API Нужно
Стратегии кэширования Нужно
Структурированное логирование Нужно
Структуры данных Нужно
Типобезопасность и системы типов Нужно
Транзакции и конкурентность Нужно
Переход: ~2-3 года
  • Самостоятельно реализовал 3+ проекта
  • Провёл успешные код-ревью
  • Участвовал в разрешении production инцидентов

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

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

Apache Kafka

Самостоятельно реализует задачи с Apache Kafka в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.

Connection Pooling

Оптимизирует connection pooling в Scala: настраивает Slick с custom HikariCP configuration, использует doobie с HikariTransactor для functional database access, реализует connection lifecycle через cats-effect Resource. Мониторит pool через JMX и Kamon.

CQRS

Реализует CQRS в Scala: использует Akka Typed Persistence для event sourced aggregates, настраивает Akka Projection для read models, применяет ZIO + Tapir для typed command/query API. Реализует domain events с sealed trait hierarchies для exhaustive matching.

gRPC и Protocol Buffers

Реализует gRPC-сервисы на Scala через ScalaPB и Akka gRPC: unary и server-streaming RPC, обработка ошибок через Status, deadline propagation. Проектирует Protobuf-схемы с учётом эволюции, использует oneof для полиморфизма и настраивает interceptors для логирования и аутентификации.

gRPC и Protocol Buffers

Разрабатывает gRPC-сервисы на Scala: использует Akka gRPC или ZIO gRPC для реализации сервисов с streaming, интегрирует с Akka Streams для backpressure-aware обработки. Настраивает ScalaPB transformations для кастомизации сгенерированного кода.

PostgreSQL

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

Rate Limiting и Throttling

Реализует rate limiting в Scala-сервисах: использует Akka Streams throttle для flow control, настраивает ZIO с Semaphore для concurrent limiting, реализует distributed limiting через Redis. Применяет Play Framework filters для per-request rate limiting.

Redis

Самостоятельно реализует задачи с Redis в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.

REST API Design

Проектирует REST API в Scala-сервисах с соблюдением best practices: HATEOAS-ссылки, пагинация, фильтрация через query-параметры. Реализует content negotiation, корректную обработку ошибок через ADT и middleware для логирования в Play Framework или Akka HTTP Directives.

Scala Frameworks

Самостоятельно реализует задачи с Scala Frameworks в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.

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

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

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

Самостоятельно применяет асинхронное программирование в Scala: файберы ZIO/Cats Effect, композиция Future, конкурентность на основе эффект-систем. Понимает компромиссы между async-паттернами на основе Future и эффект-систем в Scala-приложениях.

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

Применяет продвинутую систему type-параметров Scala: upper/lower type bounds ([A <: B], [A >: B]), аннотации вариантности (covariant +A, contravariant -A). Реализует type classes через implicit-параметры и context bounds ([T: Ordering]). Использует existential types и type members для абстракции, понимает ограничения type inference в сложных generic-цепочках.

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

Создаёт полную API-документацию для Scala-сервисов через Tapir с автогенерацией OpenAPI-спецификации: описание всех эндпоинтов, схем ошибок, примеров. Документирует Protobuf-контракты, пишет ADR (Architecture Decision Records) для ключевых архитектурных решений в проекте.

Иммутабельность и персистентные структуры

Самостоятельно применяет паттерны иммутабельности в Scala-сервисах с использованием персистентных коллекций, линз для вложенных обновлений и алгебраических типов данных для моделирования состояния. Пишет пайплайны трансформации с иммутабельным потоком данных через for-comprehensions, монадическую композицию и функциональные effect-системы. Понимает trade-offs производительности между иммутабельными и мутабельными структурами для hot paths.

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

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

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

Самостоятельно применяет практики качества кода в Scala-разработке. Пишет чистый функциональный код с уместным использованием эффект-систем и type classes. Понимает компромиссы между выразительным type-level программированием и читаемостью кода. Ревьюит код на правильную обработку ошибок, область видимости implicits и управление зависимостями сборки.

Миграции БД

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

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

Самостоятельно применяет многопоточность в Scala: акторы Akka для конкурентности на основе передачи сообщений, файберы Cats Effect/ZIO для легковесной конкурентности, композиция Future для async-воркфлоу. Обосновывает компромиссы между моделью акторов и конкурентностью на основе эффектов на code review.

Монады и функторы

Самостоятельно использует монады (Option, Either, Future, IO) для управления эффектами в Scala-приложениях. Понимает компромиссы между Cats Effect и ZIO для ссылочной прозрачности. Объясняет законы функторов и десахаризацию for-comprehension коллегам на код-ревью.

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

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

Основы функционального программирования

Уверенно использует ФП-идиомы Scala: case classes для иммутабельных данных, Option/Either для обработки ошибок, pattern matching и for-comprehensions. Понимает компромиссы между ООП и ФП стилями в Scala. Применяет принципы ФП в code review, объясняет коллегам монадическую композицию.

Паттерны Message Brokers

Работает с messaging в Scala-экосистеме: использует Alpakka Kafka с Akka Streams для reactive processing, настраивает consumer groups с committable sources, реализует at-least-once delivery через committing offsets. Применяет fs2-kafka для functional stream processing с cats-effect.

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

Самостоятельно применяет паттерны проектирования для Scala: паттерн type class для ad-hoc полиморфизма, cake pattern для внедрения зависимостей, трансформеры монад для композируемых эффектов, sealed trait иерархии для алгебраических типов данных. Обосновывает FP-ориентированные альтернативы паттернов.

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

Самостоятельно применяет ООП/SOLID в Scala: правильная композиция trait и линеаризация миксинов, дизайн case class для неизменяемых данных, sealed trait иерархии для алгебраических типов данных. Понимает компромиссы между ООП и ФП подходами в Scala — когда использовать классы vs type classes, объекты vs функции.

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

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

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

Проектирует и реализует стратегии версионирования API с использованием согласования контента, пользовательских media types или path-based версионирования в Scala-микросервисах. Пишет руководства по миграции и автоматизированные контрактные тесты для переходов между версиями.

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

Самостоятельно реализует задачи с Стратегии кэширования в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.

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

Самостоятельно выбирает подходящие структуры данных в Scala: иммутабельный List vs Vector для последовательных данных, LazyList для отложенного вычисления, case classes для доменного моделирования. Понимает компромиссы между персистентными структурами данных Scala и коллекциями для Java-интеропа.

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

Самостоятельно применяет систему типов Scala для бэкенд-сервисов — sealed traits для ADT, паттерны type class с implicits/givens и higher-kinded types для абстракций эффектов. Понимает компромиссы между сложностью кодирования на уровне типов и безопасностью в runtime. Объясняет коллегам аннотации вариантности и вывод типов.

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

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

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

Работает с шардированием в Scala: реализует database routing через custom Slick DatabaseProvider, использует Akka Cluster Sharding для distributed entity management. Применяет functional programming patterns (Reader monad) для shard-aware data access.