Distributed Tracing 1
▼
Понимает базовые концепции OpenTelemetry для Scala-приложений: traces, spans, контекст распространения. Использует существующую инструментацию для отладки запросов через Jaeger/Zipkin, находит медленные участки в trace waterfall и понимает структуру distributed trace через микросервисы.
Интегрирует OpenTelemetry в Scala-сервисы: инструментация Akka HTTP/Play через otel4s, создание custom spans для бизнес-операций. Настраивает экспорт traces в Jaeger/Tempo, добавляет span attributes для корреляции с логами и метриками, реализует sampling strategy для снижения overhead.
Проектирует distributed tracing для Scala-микросервисов: сквозная инструментация через otel4s с ZIO/Cats Effect, W3C Trace Context propagation через gRPC и Kafka. Настраивает tail-based sampling, custom SpanProcessors для обогащения данных и корреляцию traces с логами через OpenTelemetry Collector.
Определяет стандарты observability через OpenTelemetry для Scala-команды: обязательная инструментация, semantic conventions, политики sampling. Внедряет OpenTelemetry Collector pipeline, настраивает интеграцию traces + metrics + logs, определяет SLI на основе trace-данных для ключевых user journeys.
Event-Driven архитектура 1
▼
Понимает CQRS в Scala-экосистеме: знает Akka Persistence для event sourcing, различает Command и Event в typed actor model. Способен работать с существующим Akka-based 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.
Проектирует CQRS-архитектуру для Scala-микросервисов: настраивает Akka Cluster Sharding для distributed aggregates, реализует multiple projections (Slick, Elasticsearch, Cassandra), оптимизирует event journal через snapshot strategy и event deletion. Интегрирует с Kafka для cross-service event propagation.
Стандартизирует CQRS в Scala-экосистеме: выбирает между Akka Persistence и ZIO-based solutions (zio-entity), проектирует multi-bounded context architecture, создает abstractions для testable CQRS. Определяет migration strategy от Akka Classic к Akka Typed для CQRS модулей.
gRPC 1
▼
Использует существующие gRPC-сервисы из Scala-кода через ScalaPB: вызывает unary RPC-методы, понимает структуру .proto файлов. Умеет генерировать Scala-классы из Protobuf-определений через sbt-плагин, работает с базовыми типами сообщений и enum-ами.
Реализует gRPC-сервисы на Scala через ScalaPB и Akka gRPC: unary и server-streaming RPC, обработка ошибок через Status, deadline propagation. Проектирует Protobuf-схемы с учётом эволюции, использует oneof для полиморфизма и настраивает interceptors для логирования и аутентификации.
Проектирует gRPC API для Scala-микросервисов: bidirectional streaming через Akka gRPC/FS2-gRPC, retry-политики, load balancing. Внедряет Schema Registry для Protobuf, реализует gRPC-Web для браузерных клиентов и оптимизирует производительность через connection multiplexing и compression.
Определяет стандарты gRPC-взаимодействия для Scala-команды: правила проектирования .proto-файлов, стратегия backward compatibility, обязательные metadata-поля. Ревьюит Protobuf-схемы, внедряет buf для линтинга и breaking change detection, настраивает gRPC health checks для Kubernetes readiness probes.
REST API 1
▼
Реализует простые REST-эндпоинты в Scala через Play Framework или Akka HTTP: CRUD-операции с JSON-сериализацией через Circe, базовая валидация входных данных. Понимает HTTP-методы, коды ответов и структуру RESTful URL, следует существующим паттернам в кодовой базе проекта.
Проектирует REST API в Scala-сервисах с соблюдением best practices: HATEOAS-ссылки, пагинация, фильтрация через query-параметры. Реализует content negotiation, корректную обработку ошибок через ADT и middleware для логирования в Play Framework или Akka HTTP Directives.
Проектирует эволюционируемые REST API для Scala-микросервисов: стратегии версионирования, backwards compatibility, rate limiting через Akka HTTP. Внедряет OpenAPI-спецификации через Tapir, реализует circuit breaker паттерны и оптимизирует сериализацию для высоконагруженных эндпоинтов.
Определяет стандарты REST API для Scala-команды: гайдлайны по проектированию эндпоинтов, обязательное использование Tapir для type-safe описания API, стратегия версионирования. Ревьюит API-контракты на соответствие доменной модели, обеспечивает консистентность между микросервисами.
Stream-обработка 1
▼
Понимает основы топологий Kafka Streams: sources, processors и sinks. Читает существующий код потоковой обработки и следует установленным паттернам для stateless-преобразований.
Реализует stateful-обработку потоков с Kafka Streams, используя оконные агрегации и joins на Scala. Настраивает хранилища состояний RocksDB для пропускной способности и управляет changelog-топиками.
Проектирует распределённые архитектуры потоковой обработки с Kafka Streams для микросервисов на Scala. Реализует кастомные SerDes, interactive queries для доступа к state store и стратегии параллелизма на уровне партиций.
Определяет стандарты потоковой обработки данных в Scala-команде: выбор между Kafka Streams, FS2-Kafka и Akka Streams для конкретных use case-ов. Ревьюит топологии стрим-процессоров, внедряет паттерны exactly-once обработки, настраивает мониторинг consumer lag и stream processing latency.
System Design 1
▼
Понимает базовые архитектурные концепции Highload архитектура. Следует архитектурным решениям команды. Понимает основные паттерны.
Проектирует компоненты высоконагруженных Scala-сервисов: неблокирующая обработка через ZIO/Cats Effect, connection pooling через HikariCP, базовое кэширование. Понимает принципы горизонтального масштабирования, реализует асинхронную обработку запросов через Akka HTTP и применяет backpressure в Akka Streams.
Проектирует высоконагруженные Scala-системы: Akka Cluster для распределённых вычислений, sharding для масштабирования акторов, CQRS для разделения нагрузки. Оптимизирует JVM для high-throughput сценариев: GC-тюнинг, off-heap memory, профилирование через async-profiler и JFR.
Определяет архитектуру высоконагруженных Scala-сервисов команды: стандарты масштабирования, capacity planning, стратегии degradation. Ревьюит архитектуру на способность обработки пиковых нагрузок, внедряет load testing через Gatling, настраивает auto-scaling политики и circuit breaker паттерны.
Unit-тестирование 1
▼
Понимает основы юнит-тестирования в Scala: структура тестов ScalaTest/MUnit, стили assertions (should/must), простая настройка фикстур. Следует командным конвенциям организации тестов, команд sbt test и паттернов именования спецификаций.
Пишет unit-тесты для Scala-сервисов через ScalaTest или MUnit: тестирует чистые функции, используеет mock-объекты через Mockito-Scala для зависимостей. Применяет ZIO Test или Cats Effect munit для тестирования эффектов, обеспечивает coverage >80% для бизнес-логики доменного слоя.
Проектирует тестовую архитектуру для Scala-сервисов: Tagless Final для подмены зависимостей без mock-ов, test containers для интеграции с PostgreSQL и Kafka. Реализует тестовые DSL на Scala для повышения читаемости, внедряет snapshot testing для API-контрактов и Golden testing для сериализации.
Определяет стандарты тестирования для Scala-команды: обязательное покрытие, правила именования тестов, паттерны тестирования effectful-кода. Ревьюит тестовую архитектуру, внедряет TDD-практики с ZIO Test, настраивает параллельный запуск тестов через sbt для сокращения feedback loop.
Алгоритмы и структуры данных 2
▼
Понимает основы Алгоритмы и сложность на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет алгоритмическое мышление в Scala: выбирает функциональные алгоритмы коллекций для трансформации данных, понимает влияние ленивого вычисления на память, оценивает компромиссы производительности параллельных коллекций. Анализирует сложность операций Spark и паттернов распределённых вычислений.
Применяет алгоритмическую экспертизу в Scala-разработке: алгоритмы параллельных коллекций для многоядерной обработки, функциональная потоковая обработка с Akka Streams/fs2, оптимизация рекурсивных алгоритмов с trampolining. Проектирует алгоритмы распределённых вычислений для Spark-нагрузок с правильными стратегиями партиционирования.
Проводит ревью алгоритмических решений команды в Scala-проектах, оценивает O-сложность критических путей в Akka Streams и Spark-пайплайнах. Определяет стандарты производительности для сервисов и внедряет бенчмарки через JMH для выявления узких мест на уровне JVM.
Понимает основы Структуры данных на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно выбирает подходящие структуры данных в Scala: иммутабельный List vs Vector для последовательных данных, LazyList для отложенного вычисления, case classes для доменного моделирования. Понимает компромиссы между персистентными структурами данных Scala и коллекциями для Java-интеропа.
Выбирает оптимальные структуры данных для Scala-приложений: иммутабельные персистентные коллекции для функциональных паттернов, TrieMap для конкурентного доступа, Vector для сбалансированной производительности append/prepend. Оптимизирует выбор структур данных в операциях Spark RDD/Dataset. Проектирует типобезопасные кастомные коллекции с использованием collection framework Scala с правильным implicit evidence.
Определяет стандарты использования иммутабельных коллекций Scala и персистентных структур данных в командных проектах. Ревьюит выбор структур данных с учётом GC-давления на JVM, оптимизирует использование Vector, HashMap и TreeMap в высоконагруженных сервисах.
Безопасность приложений 1
▼
Следует базовым принципам безопасного программирования на Scala: не хранит секреты в коде, использует параметризованные запросы, обрабатывает ошибки через Try/Either. Применяет типобезопасные конструкции Scala для предотвращения runtime-ошибок, понимает принцип минимальных привилегий.
Применяет практики безопасного кодирования на Scala: refined types для валидации, опаковые типы для секретов, безопасное логирование без PII. Использует cats-effect Resource для безопасного управления ресурсами, реализует proper error handling без утечки внутренних деталей в API-ответы.
Проектирует безопасные Scala-системы: encryption at rest и in transit через Bouncy Castle, безопасное хранение секретов через Vault интеграцию. Реализует audit logging, secure session management в Play Framework, применяет compile-time проверки безопасности через Scala macros и refined types.
Определяет стандарты безопасного кодирования для Scala-команды: чеклисты secure code review, обязательные типобезопасные паттерны, запрет небезопасных API. Внедряет automated security linting через WartRemover с custom rules, проводит security training и формирует библиотеку безопасных утилит.
Веб-фреймворки 1
▼
Использует Scala Frameworks на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Scala Frameworks в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.
Проектирует решения на основе Scala Frameworks для production-систем. Оптимизирует производительность и масштабируемость. Выбирает между альтернативными подходами. Менторит команду.
Определяет архитектурные решения по Scala Frameworks на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Кэширование 2
▼
Использует Redis на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Redis в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.
Реализует продвинутые паттерны кэширования в Scala-сервисах через Redis4Cats или Lettuce: cache-aside, write-through, распределённые блокировки. Настраивает TTL-стратегии, сериализацию через Circe/Protobuf и мониторинг hit rate для оптимизации производительности Akka HTTP и Play Framework эндпоинтов.
Определяет стратегию кэширования для Scala-микросервисов команды: стандарты использования Redis Cluster, политики инвалидации, распределённые сессии. Ревьюит архитектуру кэширования с учётом консистентности данных, внедряет multi-layer caching с локальным Caffeine и распределённым Redis.
Использует Стратегии кэширования на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Стратегии кэширования в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.
Проектирует архитектуру кэширования для Scala-сервисов: Caffeine с функциональными обёртками, распределённое кэширование с интеграцией Cats Effect/ZIO. Реализует стратегии когерентности кэша для actor-based систем и event-driven паттерны инвалидации.
Определяет архитектурные решения по Стратегии кэширования на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Метрики и мониторинг 1
▼
Понимает базовые концепции метрик и мониторинга для Scala-приложений: JVM-метрики (heap, GC, threads) через Micrometer/Prometheus client. Читает Grafana-дашборды, понимает значение основных метрик и умеет находить информацию о состоянии своего сервиса в мониторинге.
Настраивает Prometheus-метрики для Scala-сервисов: custom counters, histograms для latency, gauges для бизнес-метрик через Kamon или ZIO Metrics. Создаёт Grafana-дашборды с RED-метриками (Rate, Errors, Duration) для эндпоинтов, настраивает базовые алерты на аномалии производительности.
Проектирует систему метрик для Scala-микросервисов: SLI/SLO-мониторинг через Prometheus, USE-метрики для инфраструктуры, custom business KPI. Настраивает multi-dimensional метрики с учётом cardinality, реализует Grafana-дашборды для troubleshooting и capacity planning, интегрирует с alerting через PagerDuty.
Определяет стандарты мониторинга для Scala-команды: обязательные метрики для каждого сервиса, SLO-бюджеты, процедуры on-call. Ревьюит качество дашбордов и алертов, внедряет SRE-практики, настраивает automated runbooks и определяет метрики для error budget policy.
Многопоточность и конкурентность 2
▼
Понимает основы Асинхронное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет асинхронное программирование в Scala: файберы ZIO/Cats Effect, композиция Future, конкурентность на основе эффект-систем. Понимает компромиссы между async-паттернами на основе Future и эффект-систем в Scala-приложениях.
Проектирует async-архитектуры в Scala: композиция сервисов на ZIO/Cats Effect, паттерны конкурентности на файберах, управление ресурсами эффект-систем. Менторит команду по функциональным паттернам конкурентности и best practices эффект-систем.
Устанавливает стандарты асинхронного программирования в команде: выбор между ZIO, Cats Effect и Akka для конкретных задач. Ревьюит корректность управления эффектами, fiber-ами и конкурентными структурами, обеспечивает отсутствие блокирующих вызовов в основном потоке исполнения.
Понимает основы Многопоточное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет многопоточность в Scala: акторы Akka для конкурентности на основе передачи сообщений, файберы Cats Effect/ZIO для легковесной конкурентности, композиция Future для async-воркфлоу. Обосновывает компромиссы между моделью акторов и конкурентностью на основе эффектов на code review.
Обладает глубокой экспертизой в конкурентности Scala: проектирует конкурентные системы на основе эффектов с файберами ZIO/Cats Effect, внедряет распределённую обработку на основе акторов с Akka Cluster, оптимизирует конкурентность JVM для Scala-специфичных паттернов. Менторит команду по функциональным паттернам конкурентности для продакшен Scala-систем.
Определяет политики управления thread pool-ами в Scala-сервисах: конфигурация ExecutionContext, блокирующих и compute-пулов для ZIO/Cats Effect. Проводит аудит многопоточного кода команды, выявляет race condition и deadlock-и через анализ fiber-графов и JVM thread dump-ов.
Моделирование данных 2
▼
Понимает основы миграций баз данных в Scala: интеграция Flyway/Liquibase с sbt, версионированные SQL-миграции и базовые изменения схемы с типобезопасными библиотеками Slick или Doobie. Следует командным паттернам для скриптов миграции и процедур отката.
Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Проектирует архитектуру миграций баз данных для Scala-приложений: реализует паттерн expand-contract для zero-downtime миграций, проектирует типобезопасные фреймворки миграции с Flyway callbacks и кодогенерацией Slick, автоматизирует тестирование миграций в CI/CD пайплайнах. Менторит команду по безопасной эволюции схемы.
Определяет стратегию работы с данными на уровне продукта. Формирует стандарты Миграции БД. Проводит review схем данных и стратегий масштабирования.
Создаёт базовые модели данных для Scala-приложений: определяет case class-ы для доменных сущностей, маппит их на таблицы PostgreSQL через Doobie или Slick. Понимает нормализацию до 3NF, проектирует простые связи между таблицами и использует типы Scala для выражения ограничений модели.
Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Проектирует доменные модели данных для Scala-сервисов: применяет DDD-подход с sealed trait ADT для состояний, JSONB для гибких структур, temporal-таблицы для аудита. Оптимизирует схемы с учётом паттернов доступа, реализует эффективную сериализацию через Circe и кодеки для Doobie.
Определяет стандарты моделирования данных в Scala-команде: правила проектирования схем, именования таблиц, использования JSONB vs нормализации. Ревьюит доменные модели на соответствие bounded context, внедряет Event Sourcing модели с Akka Persistence для критичных агрегатов.
Облачные провайдеры 1
▼
Знаком с базовыми сервисами AWS для Scala-разработки: EC2, RDS (PostgreSQL), S3 для хранения файлов. Понимает IAM-роли для доступа к ресурсам, умеет деплоить Scala-приложение в контейнере через ECS или использовать Elastic Beanstalk для простого деплоя.
Использует AWS-сервисы для Scala-микросервисов: ECS/EKS для оркестрации, RDS с read-replica, ElastiCache Redis, SQS/SNS для асинхронной коммуникации. Настраивает AWS SDK для Scala через Cats Effect интеграцию, работает с CloudWatch для мониторинга JVM-метрик и логов.
Проектирует AWS-инфраструктуру для Scala-сервисов: EKS с Karpenter для автоскейлинга, Aurora PostgreSQL для БД, MSK для Kafka. Внедряет Infrastructure as Code через Terraform/CDK, настраивает VPC-архитектуру, WAF для защиты API и оптимизирует стоимость через Reserved Instances и Spot.
Определяет AWS-архитектуру для Scala-команды: стандарты использования сервисов, Landing Zone, security baseline. Ревьюит инфраструктурные решения, внедряет GitOps через ArgoCD, настраивает multi-account стратегию и FinOps-практики с Cost Explorer для оптимизации бюджета.
ООП и паттерны проектирования 2
▼
Понимает основы Паттерны проектирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет паттерны проектирования для Scala: паттерн type class для ad-hoc полиморфизма, cake pattern для внедрения зависимостей, трансформеры монад для композируемых эффектов, sealed trait иерархии для алгебраических типов данных. Обосновывает FP-ориентированные альтернативы паттернов.
Обладает глубокой экспертизой в паттернах проектирования для Scala: проектирует архитектуры на основе эффектов с ZIO/Cats Effect, внедряет паттерны программирования на уровне типов для compile-time безопасности, оптимизирует функциональные паттерны для производительности JVM. Менторит команду по FP-паттернам проектирования для продакшен Scala-систем.
Внедряет функциональные паттерны проектирования в Scala-кодовую базу команды: Tagless Final, Free Monad, Reader/Writer для dependency injection. Проводит архитектурные ревью с акцентом на typeclass-паттерны из Cats и ZIO для обеспечения композируемости и тестируемости кода.
Понимает основы Принципы ООП и SOLID на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет ООП/SOLID в Scala: правильная композиция trait и линеаризация миксинов, дизайн case class для неизменяемых данных, sealed trait иерархии для алгебраических типов данных. Понимает компромиссы между ООП и ФП подходами в Scala — когда использовать классы vs type classes, объекты vs функции.
Применяет ООП/SOLID в сочетании с функциональным дизайном в Scala: type class pattern для ad-hoc полиморфизма, cake pattern/ZIO layers для dependency injection, sealed trait иерархии для исчерпывающего pattern matching. Проектирует архитектуры, балансирующие ООП-инкапсуляцию с функциональной чистотой с использованием эффект-систем.
Формирует командные стандарты по сочетанию ООП и ФП в Scala: использование sealed trait-иерархий, case class для доменных моделей, trait mixin для композиции. Ревьюит архитектуру модулей на соответствие SOLID-принципам с учётом Scala-специфики — ADT, implicit-ов и type class-ов.
Оптимизация БД 4
▼
Понимает connection pooling в Scala: знает HikariCP как стандарт для JVM, умеет настроить через Play Framework или Slick конфигурацию. Понимает connection lifecycle в контексте functional IO (cats-effect Resource, ZIO Scope).
Оптимизирует connection pooling в Scala: настраивает Slick с custom HikariCP configuration, использует doobie с HikariTransactor для functional database access, реализует connection lifecycle через cats-effect Resource. Мониторит pool через JMX и Kamon.
Проектирует connection management для Scala-микросервисов: реализует functional connection routing (Reader monad для database selection), настраивает Akka Streams integration с database pool для backpressure-aware data access. Оптимизирует pool для reactive streaming workloads.
Стандартизирует connection management в Scala-экосистеме: определяет when to use Slick vs doobie vs Quill с разными pool strategies, создает abstractions для standardized pool setup. Проектирует connection governance для Akka Cluster и distributed Scala-systems.
Понимает базовые принципы индексирования в PostgreSQL: создание B-tree индексов, чтение EXPLAIN ANALYZE для простых запросов из Scala-приложений. Знает разницу между первичным ключом и обычным индексом, умеет определить необходимость индекса по медленным запросам в логах.
Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Проектирует стратегию индексирования для Scala-сервисов: составные индексы, partial indexes, GIN для JSONB-полей, GiST для геоданных. Анализирует query plans с учётом паттернов доступа Doobie/Slick-запросов, оптимизирует индексы для снижения latency высоконагруженных эндпоинтов.
Определяет политику индексирования для Scala-микросервисов команды: стандарты именования, правила создания индексов в миграциях, мониторинг неиспользуемых индексов. Ревьюит планы индексирования с учётом write amplification и влияния на производительность INSERT/UPDATE операций в OLTP-сценариях.
Выполняет базовую оптимизацию SQL-запросов в Scala-приложениях: избегает N+1 проблем в Doobie/Slick, использует JOIN вместо подзапросов. Умеет читать EXPLAIN-вывод PostgreSQL и понимает влияние отсутствующих индексов на производительность запросов.
Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Оптимизирует сложные запросы в Scala-сервисах: переписывает Slick/Doobie-запросы для минимизации round-trip, использует batch fetching, оконные функции и materialized views. Профилирует запросы через pg_stat_statements, устраняет bottleneck-и в критических путях сервисов.
Устанавливает стандарты оптимизации запросов в Scala-команде: обязательный EXPLAIN-анализ в code review, бюджеты latency для эндпоинтов, правила использования кэширования запросов. Ревьюит архитектуру доступа к данным, внедряет CQRS-паттерн для разделения read/write нагрузки.
Понимает основы транзакций баз данных и свойства ACID в Scala-приложениях. Использует базовое управление транзакциями через Slick, Doobie или JDBC. Следует командным соглашениям по границам транзакций, корректному освобождению ресурсов и обработке конкурентного доступа с подходящими уровнями изоляции.
Самостоятельно проектирует схемы и оптимизирует запросы с Транзакции и конкурентность. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Проектирует архитектуры транзакций для высоконагруженных Scala-систем с продвинутыми паттернами: saga, outbox, event sourcing для распределённой консистентности. Реализует STM для in-memory конкурентности совместно с транзакциями БД. Оптимизирует throughput транзакций через настройку connection pool и batch-обработку. Менторит команду.
Определяет стратегию работы с данными на уровне продукта. Формирует стандарты Транзакции и конкурентность. Проводит review схем данных и стратегий масштабирования.
Очереди сообщений 2
▼
Использует Apache Kafka на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Apache Kafka в Play/http4s. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты с помощью ScalaTest/MUnit.
Проектирует надёжные Kafka-интеграции в Scala-сервисах через Alpakka Kafka или FS2-Kafka: настраивает партиционирование, exactly-once семантику и обработку ошибок. Реализует паттерны Transactional Outbox и idempotent consumer для гарантии доставки сообщений в распределённых Akka-системах.
Определяет архитектуру событийного взаимодействия между Scala-сервисами через Kafka: стандарты Schema Registry с Avro/Protobuf, стратегии партиционирования и retention. Ревьюит топологию топиков команды, внедряет паттерны Dead Letter Queue и мониторинг consumer lag через Prometheus.
Понимает паттерны брокеров сообщений в Scala: pub-sub через Akka Streams/ZIO Streams, интеграция Kafka через Alpakka. Следует командным конвенциям для функциональной обработки сообщений с effect systems и обработкой backpressure.
Работает с 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.
Проектирует messaging-архитектуру для Scala: реализует exactly-once processing через Kafka transactions с Alpakka, проектирует event sourcing с Akka Persistence или EventStoreDB, настраивает stream processing с Flink/Kafka Streams через Scala API. Оптимизирует backpressure и parallelism.
Стандартизирует messaging в Scala-экосистеме: выбирает между Alpakka, fs2-kafka и ZIO Kafka для разных команд, проектирует event-driven архитектуру с CQRS через Akka Projection, внедряет schema registry интеграцию с Avro/Protobuf для type-safe evolution.
Реляционные БД 1
▼
Выполняет базовые SQL-запросы к PostgreSQL из Scala-приложений через Doobie или Slick: SELECT, INSERT, UPDATE с параметризованными запросами. Понимает типы данных PostgreSQL, работает с миграциями через Flyway и умеет читать планы выполнения простых запросов.
Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует Slick/Doobie эффективно.
Оптимизирует работу с PostgreSQL в Scala-сервисах: настройка connection pool через HikariCP, использование JSONB-полей, оконных функций и CTE. Проектирует схемы с учётом партиционирования, реализует эффективные batch-операции через Doobie Transactor и мониторит slow queries.
Определяет стандарты работы с PostgreSQL в Scala-команде: выбор между Doobie, Slick и Quill, правила написания миграций, стратегии партиционирования таблиц. Ревьюит архитектуру данных, внедряет read-replica для масштабирования чтения и настраивает логическую репликацию для аналитических задач.
Системы типов 2
▼
Понимает основы Дженерики и параметрический полиморфизм на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Применяет продвинутую систему 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-цепочках.
Архитектурит type-level вычисления в Scala: реализует higher-kinded types (F[_]) для tagless final и free monad паттернов. Проектирует generic type class иерархии (Functor, Monad, Traverse) с lawful instances и автоматической деривацией. Применяет path-dependent types и type projections для продвинутых generic-абстракций, использует match types (Scala 3) и type lambdas для compile-time type-трансформаций. Менторит команду по правилам вариантности и отладке type inference.
Определяет стандарты использования Дженерики и параметрический полиморфизм на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Понимает основы Типобезопасность и системы типов на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет систему типов Scala для бэкенд-сервисов — sealed traits для ADT, паттерны type class с implicits/givens и higher-kinded types для абстракций эффектов. Понимает компромиссы между сложностью кодирования на уровне типов и безопасностью в runtime. Объясняет коллегам аннотации вариантности и вывод типов.
Обладает глубокой экспертизой в системе типов Scala — проектирует типобезопасные DSL с dependent types, match types и opaque type aliases. Архитектурирует effect-based системы на ZIO/Cats Effect с обработкой ошибок на уровне типов и безопасностью ресурсов. Менторит команду по продвинутому type class derivation, разрешению implicit и балансу type-level сложности с доступностью кодовой базы.
Устанавливает командные стандарты использования системы типов Scala: refined types для валидации, phantom types для состояний, опаковые типы для доменных примитивов. Ревьюит корректность type-level программирования, обеспечивает баланс между безопасностью типов и читаемостью кода.
Управление API 2
▼
Документирует Scala API-эндпоинты с помощью Swagger/OpenAPI аннотаций: описывает request/response модели, примеры запросов. Пишет Scaladoc-комментарии для публичных методов, поддерживает актуальность README с инструкциями по запуску сервиса и доступным эндпоинтам.
Создаёт полную API-документацию для Scala-сервисов через Tapir с автогенерацией OpenAPI-спецификации: описание всех эндпоинтов, схем ошибок, примеров. Документирует Protobuf-контракты, пишет ADR (Architecture Decision Records) для ключевых архитектурных решений в проекте.
Проектирует систему документирования API для Scala-микросервисов: автогенерация через Tapir/Smithy, интеграция в CI для валидации актуальности. Создаёт developer portal с интерактивными примерами, документирует паттерны взаимодействия между сервисами и стратегии обработки ошибок.
Определяет стандарты документирования API в Scala-команде: обязательные секции, format спецификаций, процесс ревью документации. Внедряет contract-first подход через Tapir или Smithy, обеспечивает синхронизацию документации с кодом через automated checks в CI/CD-пайплайне.
Изучает стратегии версионирования API, включая URI-версионирование и согласование контента в Scala-сервисах. Следует установленным паттернам управления версиями в эндпоинтах Akka HTTP или Play Framework.
Проектирует и реализует стратегии версионирования API с использованием согласования контента, пользовательских media types или path-based версионирования в Scala-микросервисах. Пишет руководства по миграции и автоматизированные контрактные тесты для переходов между версиями.
Проектирует API-архитектуру с Стратегии версионирования API для production-систем. Определяет стандарты versioning, error handling, pagination. Оптимизирует производительность.
Определяет стратегию версионирования API для Scala-команды: выбор между URL-path, header-based и content negotiation подходами. Внедряет процессы deprecation с grace period, автоматическую проверку backward compatibility через Tapir schema diff и мониторинг usage старых версий API.
Функциональное программирование 3
▼
Понимает базовые принципы иммутабельности в Scala — val vs var, иммутабельные коллекции из scala.collection.immutable и преимущества case class. Следует конвенциям команды по использованию иммутабельных структур данных и избегает мутабельного состояния в бизнес-логике. Осознаёт, как иммутабельность обеспечивает более безопасное конкурентное программирование и упрощает рассуждение о поведении кода.
Самостоятельно применяет паттерны иммутабельности в Scala-сервисах с использованием персистентных коллекций, линз для вложенных обновлений и алгебраических типов данных для моделирования состояния. Пишет пайплайны трансформации с иммутабельным потоком данных через for-comprehensions, монадическую композицию и функциональные effect-системы. Понимает trade-offs производительности между иммутабельными и мутабельными структурами для hot paths.
Проектирует архитектуры приложений Scala, использующие иммутабельность для типобезопасных, конкурентных и тестируемых систем. Внедряет продвинутые паттерны — библиотеки оптик (Monocle) для глубоких иммутабельных обновлений, tagless final с иммутабельным состоянием и event-sourced архитектуры с иммутабельными потоками событий. Оптимизирует иммутабельные структуры данных для высокопроизводительных сценариев со structural sharing, специализированными персистентными коллекциями и стратегическим использованием локальной мутабельности за чистыми интерфейсами.
Определяет стандарты иммутабельности и функционального программирования для бэкенд-систем на Scala в организации. Формирует рекомендации по иммутабельному доменному моделированию, чистому управлению состоянием в распределённых сервисах и безопасным границам интеропа с мутабельными Java-библиотеками. Проводит архитектурные ревью, обеспечивая, что принципы иммутабельности обеспечивают корректность, тестируемость и поддерживаемость систем в масштабе.
Понимает основы Монады и функторы на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно использует монады (Option, Either, Future, IO) для управления эффектами в Scala-приложениях. Понимает компромиссы между Cats Effect и ZIO для ссылочной прозрачности. Объясняет законы функторов и десахаризацию for-comprehension коллегам на код-ревью.
Проектирует системы эффектов с использованием трансформеров монад (EitherT, OptionT, ReaderT) и tagless final кодирования для продакшн Scala-сервисов. Архитектурит доменные слои с free-монадами или ZIO/Cats Effect для тестируемой, композируемой бизнес-логики. Менторит разработчиков по законам монад, стек-безопасной рекурсии с Eval и прагматичным компромиссам ФП.
Определяет стандарты использования Монады и функторы на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Понимает основы Основы функционального программирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Уверенно использует ФП-идиомы Scala: case classes для иммутабельных данных, Option/Either для обработки ошибок, pattern matching и for-comprehensions. Понимает компромиссы между ООП и ФП стилями в Scala. Применяет принципы ФП в code review, объясняет коллегам монадическую композицию.
Проектирует production-системы на Scala с продвинутым ФП: effect-системы на Cats Effect или ZIO, tagless final, программирование на уровне типов. Архитектурит сервисы с чистым ядром и тонкой I/O границей. Менторит команду по monad transformers, free monads и функциональной обработке ошибок.
Определяет стандарты использования Основы функционального программирования на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Чистый код и рефакторинг 1
▼
Понимает основы Качество кода и рефакторинг на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет практики качества кода в Scala-разработке. Пишет чистый функциональный код с уместным использованием эффект-систем и type classes. Понимает компромиссы между выразительным type-level программированием и читаемостью кода. Ревьюит код на правильную обработку ошибок, область видимости implicits и управление зависимостями сборки.
Проектирует стандарты качества кода для Scala-проектов: правила Scalafix, конфигурации Wartremover, паттерны эффект-систем (ZIO/Cats Effect). Рефакторит императивный код в функциональный стиль с правильным type-level программированием. Устанавливает практики ревью для использования implicits, паттернов type class и организации сборки.
Внедряет стандарты качества Scala-кода в команде: настройка Scalafix, WartRemover, Scalafmt. Определяет правила code review с акцентом на идиоматичность Scala, корректное использование implicits и for-comprehension. Интегрирует статический анализ и coverage-метрики в CI/CD-пайплайн через sbt.