Понимает основы Алгоритмы и сложность на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Роли · Backend Developer (Elixir) · Junior
Что должен уметь Junior }
26 ключевых навыков, всего 66. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.
Ключевые навыки для Junior
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 9
Понимает основы Асинхронное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает базовые принципы иммутабельности в Elixir — все структуры данных иммутабельны по умолчанию. Следует паттернам команды для работы с иммутабельными maps, lists и structs без попыток мутации. Осознаёт, как pattern matching и композиция функций заменяют традиционное манипулирование мутабельным состоянием в кодовых базах Elixir.
Понимает основы Качество кода и рефакторинг на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Многопоточное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Монады и функторы на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Основы функционального программирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Паттерны проектирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Понимает основы Структуры данных на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Backend Development · 6
Использует Стратегии кэширования на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Apache Kafka на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Elixir Phoenix на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует NATS / NATS JetStream на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует RabbitMQ на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Использует Redis на базовом уровне в Elixir-приложениях — подключение через Redix, выполнение простых команд GET/SET для кэширования сессий и ответов. Понимает базовые типы данных Redis и следует практикам команды по структуре ключей кэша и управлению TTL в Phoenix-приложениях.
Базы данных · 6
Создаёт базовые индексы в Ecto-миграциях для PostgreSQL: одноколоночные, уникальные и составные. Понимает влияние индексов на скорость SELECT-запросов в Elixir-приложениях. Использует create index и create unique_index в миграциях mix ecto.gen.migration.
Создаёт базовые Ecto-миграции через mix ecto.gen.migration в Elixir-проектах. Добавляет таблицы, колонки и индексы с правильными типами данных. Понимает порядок выполнения миграций и использует mix ecto.migrate и mix ecto.rollback для управления схемой.
Пишет эффективные Ecto-запросы для PostgreSQL в Elixir-приложениях. Избегает проблемы N+1 через Ecto.Query.preload, использует select для выборки нужных полей. Понимает разницу между preload, join и subquery в контексте производительности.
Создаёт базовые Ecto-схемы с типами полей и валидациями через changeset в Elixir-проектах. Определяет ассоциации has_many, belongs_to и many_to_many. Использует embedded_schema для вложенных структур и cast_assoc для валидации связанных данных.
Использует базовые транзакции в Elixir через Ecto.Repo.transaction/1 для атомарных операций. Понимает концепции ACID в контексте PostgreSQL и Ecto. Обрабатывает ошибки транзакций через pattern matching на {:ok, result} и {:error, reason}.
Выполняет базовые SQL-запросы к PostgreSQL через Ecto в Elixir-проектах. Создаёт простые схемы с полями, типами и ассоциациями (has_many, belongs_to). Использует Ecto.Query для выборок, фильтрации и сортировки данных в Phoenix-приложениях.
API и интеграции · 5
Документирует Elixir-модули и функции через @moduledoc и @doc атрибуты. Генерирует документацию через ExDoc с mix docs. Описывает API-эндпоинты Phoenix с примерами запросов и ответов, поддерживает typespecs для автодокументирования типов в ExDoc.
Реализует базовые WebSocket-соединения в Phoenix через Channels. Создаёт каналы с обработкой join, handle_in и handle_out. Подключает JavaScript-клиент через phoenix.js, отправляет и получает сообщения с базовой обработкой событий в реальном времени.
Понимает необходимость версионирования API в Phoenix-приложениях. Реализует базовое версионирование через URL-префиксы (/api/v1, /api/v2) с помощью scope в Phoenix Router. Поддерживает обратную совместимость при добавлении новых полей в JSON-ответы.
Создаёт базовые GraphQL-схемы в Elixir с использованием Absinthe. Определяет типы, запросы и мутации через DSL Absinthe. Подключает резолверы к Ecto-контекстам Phoenix, возвращает данные с базовой обработкой ошибок через {:ok, data} и {:error, message}.
Создаёт базовые REST-эндпоинты в Phoenix Framework с использованием контроллеров и роутера. Определяет ресурсные маршруты через resources/4, реализует CRUD-операции с Ecto-схемами. Возвращает JSON-ответы через Phoenix.Controller.json/2 с правильными HTTP-статусами.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Middle
66 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.
- Паттерны Message Brokers: Осведомлённость → Применение · становится ключевым
- Шардирование БД: Осведомлённость → Применение · становится ключевым
- Connection Pooling: Осведомлённость → Применение · становится ключевым
- CQRS: Осведомлённость → Применение · становится ключевым
- gRPC и Protocol Buffers: Осведомлённость → Применение · становится ключевым
- Rate Limiting и Throttling: Осведомлённость → Применение · становится ключевым
- Алгоритмы и сложность: Осведомлённость → Применение
- Асинхронное программирование: Осведомлённость → Применение
- Документирование API: Осведомлённость → Применение
- Иммутабельность и персистентные структуры: Осведомлённость → Применение
} в открытой матрице компетенций: 66 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.