Понимает основы Алгоритмы и сложность на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Роли · Backend Developer (Scala) · Junior
Что должен уметь Junior }
26 ключевых навыков, всего 67. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 12
Понимает основы Асинхронное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Дженерики и параметрический полиморфизм на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает базовые принципы иммутабельности в Scala — val vs var, иммутабельные коллекции из scala.collection.immutable и преимущества case class. Следует конвенциям команды по использованию иммутабельных структур данных и избегает мутабельного состояния в бизнес-логике. Осознаёт, как иммутабельность обеспечивает более безопасное конкурентное программирование и упрощает рассуждение о поведении кода.
Понимает основы Качество кода и рефакторинг на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Многопоточное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Монады и функторы на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Основы функционального программирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Паттерны проектирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Принципы ООП и SOLID на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Структуры данных на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Типобезопасность и системы типов на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Scala 3. Следует рекомендациям senior-разработчиков при решении задач.
Backend Development · 4
Использует Стратегии кэширования на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Apache Kafka на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Redis на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Scala Frameworks на базовом уровне в Play/http4s. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Базы данных · 6
Понимает базовые принципы индексирования в PostgreSQL: создание B-tree индексов, чтение EXPLAIN ANALYZE для простых запросов из Scala-приложений. Знает разницу между первичным ключом и обычным индексом, умеет определить необходимость индекса по медленным запросам в логах.
Понимает основы миграций баз данных в Scala: интеграция Flyway/Liquibase с sbt, версионированные SQL-миграции и базовые изменения схемы с типобезопасными библиотеками Slick или Doobie. Следует командным паттернам для скриптов миграции и процедур отката.
Выполняет базовую оптимизацию SQL-запросов в Scala-приложениях: избегает N+1 проблем в Doobie/Slick, использует JOIN вместо подзапросов. Умеет читать EXPLAIN-вывод PostgreSQL и понимает влияние отсутствующих индексов на производительность запросов.
Создаёт базовые модели данных для Scala-приложений: определяет case class-ы для доменных сущностей, маппит их на таблицы PostgreSQL через Doobie или Slick. Понимает нормализацию до 3NF, проектирует простые связи между таблицами и использует типы Scala для выражения ограничений модели.
Понимает основы транзакций баз данных и свойства ACID в Scala-приложениях. Использует базовое управление транзакциями через Slick, Doobie или JDBC. Следует командным соглашениям по границам транзакций, корректному освобождению ресурсов и обработке конкурентного доступа с подходящими уровнями изоляции.
Выполняет базовые SQL-запросы к PostgreSQL из Scala-приложений через Doobie или Slick: SELECT, INSERT, UPDATE с параметризованными запросами. Понимает типы данных PostgreSQL, работает с миграциями через Flyway и умеет читать планы выполнения простых запросов.
API и интеграции · 4
Документирует Scala API-эндпоинты с помощью Swagger/OpenAPI аннотаций: описывает request/response модели, примеры запросов. Пишет Scaladoc-комментарии для публичных методов, поддерживает актуальность README с инструкциями по запуску сервиса и доступным эндпоинтам.
Изучает стратегии версионирования API, включая URI-версионирование и согласование контента в Scala-сервисах. Следует установленным паттернам управления версиями в эндпоинтах Akka HTTP или Play Framework.
Использует существующие gRPC-сервисы из Scala-кода через ScalaPB: вызывает unary RPC-методы, понимает структуру .proto файлов. Умеет генерировать Scala-классы из Protobuf-определений через sbt-плагин, работает с базовыми типами сообщений и enum-ами.
Реализует простые REST-эндпоинты в Scala через Play Framework или Akka HTTP: CRUD-операции с JSON-сериализацией через Circe, базовая валидация входных данных. Понимает HTTP-методы, коды ответов и структуру RESTful URL, следует существующим паттернам в кодовой базе проекта.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
67 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Паттерны Message Brokers: Осведомлённость → Применение · становится ключевым
- Шардирование БД: Осведомлённость → Применение · становится ключевым
- Connection Pooling: Осведомлённость → Применение · становится ключевым
- CQRS: Осведомлённость → Применение · становится ключевым
- gRPC и Protocol Buffers: Осведомлённость → Применение · становится ключевым
- Rate Limiting и Throttling: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Дженерики и параметрический полиморфизм: Осведомлённость → Применение
- Документирование API: Осведомлённость → Применение
} в открытой матрице компетенций: 67 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.