AI-ассистенты кодирования 1
▼
Использует GitHub Copilot для написания базового Elixir-кода: функции, pattern matching, pipe-операторы. Получает подсказки для Ecto-запросов и Phoenix-контроллеров. Критически оценивает предложения AI с точки зрения идиоматичности Elixir и OTP-паттернов.
Эффективно применяет GitHub Copilot для ускорения Elixir-разработки: генерация ExUnit-тестов, Ecto-миграций, Phoenix-контекстов. Пишет точные комментарии и typespecs для улучшения подсказок. Использует Copilot Chat для объяснения OTP-паттернов и отладки GenServer-логики.
Интегрирует AI-инструменты в рабочий процесс Elixir-разработки: Copilot для генерации boilerplate, Claude для архитектурных решений. Создаёт шаблоны промптов для генерации идиоматического Elixir-кода. Критически оценивает AI-предложения на соответствие OTP best practices.
Определяет стандарты использования AI-инструментов в Elixir-командах. Внедряет GitHub Copilot с кастомными правилами для Elixir/Phoenix-проектов, создаёт guidelines по валидации AI-сгенерированного кода. Обучает команду эффективному использованию AI для OTP и функционального программирования.
CI/CD 1
▼
Настраивает базовые GitHub Actions workflows для Elixir-проектов: установка OTP и Elixir через erlef/setup-beam, кэширование _build и deps через actions/cache. Запускает mix test, mix format --check-formatted и mix credo при каждом push и pull request.
Создаёт CI/CD-пайплайны GitHub Actions для Elixir с параллельным запуском: тесты ExUnit с PostgreSQL-сервисом, Dialyzer с кэшированием PLT-файлов, Credo и mix audit. Настраивает matrix builds для разных версий OTP/Elixir, реализует автоматический деплой releases.
Проектирует продвинутые CI/CD-пайплайны для Elixir на GitHub Actions. Реализует инкрементальную компиляцию с кэшированием, параллельное выполнение тестов через mix test --partitions. Настраивает автоматическую сборку Docker-образов с Elixir releases и деплой в Kubernetes.
Определяет стандарты CI/CD для всех Elixir-проектов организации на GitHub Actions. Создаёт переиспользуемые workflows (reusable workflows) для типовых Elixir-пайплайнов. Внедряет quality gates: Dialyzer, Credo, ExCoveralls >90%, mix audit и проверку миграций.
Code Review 1
▼
Участвует в code review Elixir-кода, проверяет соответствие базовым практикам: pipe-операторы, pattern matching, правильное использование Ecto.Changeset. Оставляет конструктивные комментарии с предложениями по улучшению идиоматичности кода и использованию стандартных OTP-паттернов.
Проводит эффективные code review Elixir-проектов: проверяет архитектуру Phoenix-контекстов, корректность GenServer-реализации, безопасность Ecto-запросов. Оценивает обработку ошибок через with/pattern matching, проверяет наличие typespecs и @doc. Предлагает рефакторинг с обоснованием.
Проводит глубокие архитектурные ревью Elixir-систем: оценивает дизайн supervision trees, корректность конкурентных паттернов, эффективность Ecto-запросов. Выявляет потенциальные проблемы: утечки процессов, bottleneck в GenServer, неоптимальные ETS-стратегии. Менторит через ревью.
Определяет стандарты code review для Elixir-команд организации. Внедряет автоматические проверки через Credo, Dialyzer и Sobelow в PR-процесс. Проектирует review guidelines для Phoenix, OTP и Ecto-кода, определяет checklist для архитектурных ревью распределённых систем.
Distributed Tracing 1
▼
Интегрирует OpenTelemetry в Elixir-приложения через opentelemetry_api и opentelemetry_exporter. Настраивает автоматическую инструментацию Phoenix и Ecto через opentelemetry_phoenix и opentelemetry_ecto. Понимает концепции spans, traces и context propagation в BEAM.
Реализует distributed tracing в Elixir-сервисах через OpenTelemetry SDK. Создаёт кастомные spans для GenServer-вызовов и Broadway-пайплайнов, настраивает context propagation между процессами через :otel_ctx. Экспортирует трейсы в Jaeger/Tempo с правильной корреляцией.
Проектирует архитектуру distributed tracing для Elixir-платформы через OpenTelemetry. Реализует автоматическую инструментацию для кастомных OTP-поведений, настраивает sampling стратегии для высоконагруженных систем. Внедряет корреляцию трейсов с логами и метриками :telemetry.
Определяет стандарты observability через OpenTelemetry для всех Elixir-сервисов. Проектирует единую инструментацию с opentelemetry_api для Phoenix, Ecto, Broadway и distributed Erlang. Внедряет trace-based testing, настраивает SLO-мониторинг на основе трейсов с adaptive sampling.
Git и workflow 1
▼
Использует базовые Git-команды в Elixir-проектах: commit, push, pull, branch. Понимает структуру .gitignore для Elixir: _build, deps, .elixir_ls. Создаёт feature-ветки для задач, разрешает простые merge-конфликты в Elixir-модулях и mix.lock файлах.
Применяет продвинутые Git-практики в Elixir-командах: interactive rebase для чистой истории, cherry-pick для переноса фиксов. Настраивает pre-commit hooks для автоматического запуска mix format и mix credo. Разрешает сложные конфликты в Ecto-миграциях и config-файлах.
Проектирует Git-workflow для Elixir-проектов: trunk-based development с feature flags через FunWithFlags, release branches для Elixir releases. Настраивает advanced hooks: проверка typespecs через Dialyzer, валидация миграций. Автоматизирует changelog через conventional commits.
Определяет Git-стратегию для всех Elixir-проектов организации. Внедряет trunk-based development с автоматическим merge через CI при зелёных Dialyzer, Credo и ExUnit. Проектирует монорепозиторий или стратегию для umbrella-приложений, настраивает CODEOWNERS для Phoenix-контекстов.
GraphQL 1
▼
Создаёт базовые GraphQL-схемы в Elixir с использованием Absinthe. Определяет типы, запросы и мутации через DSL Absinthe. Подключает резолверы к Ecto-контекстам Phoenix, возвращает данные с базовой обработкой ошибок через {:ok, data} и {:error, message}.
Разрабатывает GraphQL API на Absinthe с вложенными типами, enum и интерфейсами. Решает проблему N+1 через Dataloader и batch-резолверы. Реализует пагинацию Relay-стиля с курсорами, настраивает middleware Absinthe для логирования и аутентификации.
Проектирует масштабируемые GraphQL API на Absinthe с подписками через Phoenix PubSub и WebSocket. Внедряет persisted queries, query complexity analysis и depth limiting для защиты от DoS. Реализует федерацию схем и интеграцию с Phoenix LiveView через push-обновления.
Определяет стратегию GraphQL для Elixir-платформы. Проектирует федеративную архитектуру с Absinthe Federation, определяет стандарты именования, обработки ошибок и авторизации через middleware. Внедряет schema stitching между микросервисами и мониторинг через :telemetry.
Kubernetes и оркестрация 1
▼
Разворачивает Elixir-приложения в Kubernetes с базовыми манифестами Deployment и Service. Настраивает liveness и readiness probes через Phoenix health-эндпоинты. Понимает связь между подами и Elixir releases, использует kubectl для базовой отладки.
Настраивает Kubernetes для Elixir-приложений с ConfigMaps для runtime.exs, Secrets для credentials и HPA для автоскейлинга. Реализует кластеризацию BEAM-нод через libcluster с Kubernetes.DNS стратегией. Управляет rolling deployments с учётом graceful shutdown процессов.
Проектирует Kubernetes-инфраструктуру для распределённых Elixir-систем. Настраивает StatefulSets для кластеризации BEAM с libcluster, Headless Services для node discovery. Реализует canary deployments, настраивает PodDisruptionBudget для сохранения кворума Elixir-кластера.
Определяет архитектуру Kubernetes для Elixir-платформы организации. Проектирует Helm-чарты с шаблонами для Phoenix-сервисов, настраивает service mesh для inter-node communication. Внедряет GitOps через ArgoCD с автоматическим rollback на основе :telemetry-метрик.
REST API 1
▼
Создаёт базовые REST-эндпоинты в Phoenix Framework с использованием контроллеров и роутера. Определяет ресурсные маршруты через resources/4, реализует CRUD-операции с Ecto-схемами. Возвращает JSON-ответы через Phoenix.Controller.json/2 с правильными HTTP-статусами.
Разрабатывает структурированные REST API на Phoenix с версионированием через роутер-скоупы. Реализует пагинацию, фильтрацию и сортировку через Ecto-запросы. Применяет Phoenix.View или Jason.Encoder для сериализации, настраивает Plug-пайплайны для аутентификации.
Проектирует масштабируемые REST API на Phoenix с HATEOAS и content negotiation. Внедряет rate limiting через Hammer, кэширование через ETag и ConCache. Реализует API-шлюз с Plug.Router, настраивает документацию через OpenAPI с open_api_spex и Swagger UI.
Определяет архитектурные стандарты REST API для всех Elixir-сервисов организации. Проектирует Phoenix API Gateway с аутентификацией через Guardian/JWT, версионированием и rate limiting. Внедряет contract-first подход с open_api_spex и автогенерацию клиентов.
Алгоритмы и структуры данных 2
▼
Понимает основы Алгоритмы и сложность на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет алгоритмическое мышление в Elixir: оценивает эффективность маршрутизации сообщений процессов, выбирает подходящие алгоритмы трансформации данных с Enum/Stream, понимает оптимизацию рекурсии с tail-calls. Анализирует сложность паттернов распределённых вычислений в OTP-приложениях.
Применяет алгоритмическую экспертизу в Elixir-разработке: flow-based алгоритмы обработки с backpressure GenStage, распределённые алгоритмы консенсуса в кластерных OTP-приложениях, эффективная рекурсия с tail-call оптимизацией. Проектирует алгоритмы балансировки деревьев супервизоров процессов и распределения нагрузки.
Проектирует алгоритмически оптимальные решения для высоконагруженных Elixir-систем на BEAM VM. Анализирует сложность конкурентных алгоритмов с учётом планировщика процессов OTP, оценивает влияние на latency при обработке миллионов сообщений через GenServer и Task.
Понимает основы Структуры данных на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно выбирает подходящие структуры данных в Elixir: keyword lists vs maps для конфигурации, ETS для конкурентных данных с интенсивным чтением, кортежи vs структуры для типов возвращаемых значений. Понимает компромиссы между иммутабельными структурами данных и управлением состоянием на основе процессов в OTP.
Выбирает оптимальные структуры данных для Elixir/OTP-приложений: ETS-таблицы для конкурентных нагрузок с интенсивным чтением, изоляция состояния на основе процессов, persistent term storage для конфигурации. Оптимизирует поток данных через GenStage-пайплайны с буферизацией, учитывающей backpressure. Проектирует эффективные структуры передачи сообщений между распределёнными узлами Erlang.
Проектирует эффективные иммутабельные структуры данных для Elixir-приложений с учётом модели памяти BEAM VM. Применяет ETS/DETS-таблицы для высокоскоростного доступа к данным, оптимизирует использование :persistent_term для глобальных конфигураций в кластере.
Аутентификация и авторизация 1
▼
Реализует базовую JWT-аутентификацию в Phoenix через Guardian. Генерирует и верифицирует токены, настраивает Guardian.Plug.Pipeline для защиты маршрутов. Понимает структуру JWT (header, payload, signature) и flow авторизации через Bearer токены в API-запросах.
Разрабатывает полноценную систему аутентификации в Phoenix с Guardian и Ueberauth. Реализует OAuth2-flow с провайдерами (Google, GitHub) через Ueberauth-стратегии. Настраивает refresh-токены, revocation через ETS или Redis, и RBAC-авторизацию через Guardian.Permissions.
Проектирует безопасную систему аутентификации для Elixir-микросервисов. Реализует centralized auth через Guardian с JWT RS256 и JWKS-ротацией ключей. Внедряет OAuth2 server через ExOAuth2Provider, настраивает SSO и token introspection для межсервисной авторизации.
Определяет стратегию аутентификации и авторизации для всей Elixir-платформы. Проектирует Identity Provider на Phoenix с Guardian, OAuth2 и OpenID Connect. Внедряет zero-trust архитектуру с mTLS между сервисами, централизованное управление разрешениями через PolicyWonk.
Веб-фреймворки 1
▼
Использует Elixir Phoenix на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Elixir Phoenix. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Проектирует решения на основе Elixir Phoenix для production-систем. Оптимизирует производительность и масштабируемость. Выбирает между альтернативными подходами. Менторит команду.
Определяет архитектурные решения по Elixir Phoenix на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Интеграционное тестирование 1
▼
Пишет базовые интеграционные тесты для Phoenix-приложений с Ecto sandbox. Тестирует эндпоинты через ConnTest с HTTP-запросами, проверяет JSON-ответы и статус-коды. Использует setup блоки для подготовки тестовых данных в PostgreSQL через Ecto-фабрики.
Разрабатывает интеграционные тесты для Elixir-сервисов с реальной PostgreSQL через Ecto.Adapters.SQL.Sandbox. Тестирует Phoenix Channels через ChannelTest, WebSocket-соединения и PubSub. Реализует тесты для Broadway-пайплайнов с мокированием продюсеров через Mox.
Проектирует стратегию интеграционного тестирования для Elixir-платформы. Реализует end-to-end тесты через Wallaby с headless Chrome для LiveView. Настраивает тестирование распределённых систем с несколькими BEAM-нодами, мокирует внешние API через Bypass и Tesla.Mock.
Определяет стандарты интеграционного тестирования для всех Elixir-сервисов. Внедряет contract testing между микросервисами через Pact, настраивает CI-окружение с docker-compose для полного стека. Проектирует стратегию тестирования GenServer-кластеров и distributed Erlang.
Контейнеризация 1
▼
Создаёт базовые Dockerfile для Elixir-приложений с multi-stage сборкой: компиляция через mix release в builder-стадии и минимальный runtime-образ на Alpine. Запускает Phoenix-приложения в контейнерах с docker-compose, настраивает связку с PostgreSQL и Redis.
Оптимизирует Docker-образы для Elixir releases с кэшированием зависимостей mix deps.get и компиляции. Настраивает health checks через Phoenix endpoints, управляет конфигурацией через runtime.exs и ENV-переменные. Реализует docker-compose для полного dev-окружения с LiveReload.
Проектирует production-ready Docker-инфраструктуру для Elixir-приложений. Настраивает multi-stage builds с оптимальным кэшированием слоёв, конфигурирует Elixir releases с --no-halt. Реализует graceful shutdown через SIGTERM в supervision tree, настраивает сетевую изоляцию.
Определяет стандарты контейнеризации для всех Elixir-сервисов организации. Проектирует базовые Docker-образы с предкомпилированным OTP и Elixir, настраивает CI/CD-пайплайны для сборки releases. Внедряет сканирование уязвимостей через Trivy и политику обновления образов.
Кэширование 2
▼
Использует Redis на базовом уровне в Elixir-приложениях — подключение через Redix, выполнение простых команд GET/SET для кэширования сессий и ответов. Понимает базовые типы данных Redis и следует практикам команды по структуре ключей кэша и управлению TTL в Phoenix-приложениях.
Самостоятельно реализует паттерны кэширования Redis в Elixir-сервисах — pub/sub через Redix.PubSub для real-time функций, sorted sets для лидербордов и pipeline batching для производительности. Понимает опции персистентности Redis и управление памятью. Пишет интеграционные тесты, валидирующие поведение кэша и корректность TTL.
Интегрирует Redis в Elixir-приложения через Redix или библиотеку Cachex с Redis-бэкендом. Реализует кэширование сессий Phoenix, результатов Ecto-запросов и rate limiting. Настраивает пул соединений через NimblePool и управляет TTL-стратегиями.
Проектирует архитектуру кэширования для Elixir-систем с использованием Redis, ETS и Cachex. Определяет многоуровневую стратегию: L1 — ETS в процессе, L2 — Redis кластер. Настраивает мониторинг hit rate через :telemetry и Prometheus, реализует cache invalidation.
Использует Стратегии кэширования на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с Стратегии кэширования. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Реализует многоуровневое кэширование в Elixir-приложениях: ETS для горячих данных в памяти, Cachex с TTL-политиками, Redis для распределённого кэша. Применяет :persistent_term для редко меняющихся конфигураций, настраивает инвалидацию через PubSub Phoenix.
Проектирует комплексную стратегию кэширования для Elixir/Phoenix-приложений. Внедряет cache-aside через Cachex с Telemetry-метриками, настраивает distributed cache через Redis Cluster. Определяет политику TTL, LRU-вытеснения и инвалидации для каждого уровня данных.
Многопоточность и конкурентность 2
▼
Понимает основы Асинхронное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет асинхронное программирование в Elixir/OTP: async-вызовы GenServer, Task.async/await для конкурентных операций, супервизия процессов для отказоустойчивости. Понимает компромиссы между синхронным и асинхронным обменом сообщениями в OTP.
Проектирует async-архитектуры в Elixir/OTP: пайплайны с backpressure на GenStage, распределённая координация задач между нодами, дизайн деревьев супервизоров для отказоустойчивых async-workflow. Менторит команду по паттернам конкурентности OTP.
Проектирует сложные асинхронные системы на Elixir с использованием Task.Supervisor, GenStage и Flow для параллельной обработки данных. Управляет back-pressure через Broadway, настраивает пулы процессов и контролирует конкурентность через Task.async_stream.
Понимает основы Многопоточное программирование на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет паттерны конкурентности в Elixir/OTP: GenServer для управления stateful-процессами, Task для fire-and-forget конкурентных операций, линковка и мониторинг процессов для отказоустойчивости. Обосновывает компромиссы между различными абстракциями конкурентности OTP на code review.
Обладает глубокой экспертизой в конкурентности Elixir/OTP: проектирует отказоустойчивые распределённые системы с деревьями supervision, внедряет backpressure и контроль потока в GenStage-пайплайнах, оптимизирует планирование процессов для высокопроизводительных систем. Менторит команду по продвинутым паттернам OTP для продакшен Elixir-приложений.
Проектирует конкурентные Elixir-системы на базе легковесных процессов BEAM VM и OTP-паттернов. Применяет GenServer, Agent и Task для безопасного параллелизма через message passing, настраивает supervision trees для отказоустойчивости и управляет состоянием процессов.
Моделирование данных 2
▼
Создаёт базовые Ecto-миграции через mix ecto.gen.migration в Elixir-проектах. Добавляет таблицы, колонки и индексы с правильными типами данных. Понимает порядок выполнения миграций и использует mix ecto.migrate и mix ecto.rollback для управления схемой.
Самостоятельно проектирует схемы и оптимизирует запросы с Миграции БД. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Реализует сложные Ecto-миграции для PostgreSQL: безопасное добавление колонок с дефолтами, миграции данных через execute/1, создание индексов concurrently. Применяет Ecto.Migration.flush/0 для многоэтапных миграций и обеспечивает обратную совместимость схемы.
Проектирует стратегию миграций для Elixir-платформы с zero-downtime deployments. Внедряет двухфазные миграции (expand/contract), настраивает CI-проверки безопасности через Excellent Migrations. Определяет политику версионирования схемы и rollback-процедуры для всех сервисов.
Создаёт базовые Ecto-схемы с типами полей и валидациями через changeset в Elixir-проектах. Определяет ассоциации has_many, belongs_to и many_to_many. Использует embedded_schema для вложенных структур и cast_assoc для валидации связанных данных.
Самостоятельно проектирует схемы и оптимизирует запросы с Проектирование схем данных. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Проектирует сложные модели данных с Ecto для PostgreSQL: полиморфные ассоциации, STI через поле type, JSONB-колонки с Ecto.Type. Реализует кастомные Ecto.Type для domain-specific типов, применяет Ecto.Changeset для сложной бизнес-валидации с контекстами.
Определяет архитектуру моделей данных для Elixir-платформы. Проектирует bounded contexts через отдельные Ecto-схемы и контексты Phoenix. Внедряет event sourcing с Commanded/EventStore, определяет стандарты моделирования агрегатов и value objects через embedded_schema.
ООП и паттерны проектирования 1
▼
Понимает основы Паттерны проектирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет паттерны проектирования для Elixir: GenServer для stateful-процессов, деревья Supervisor для отказоустойчивости, паттерн пайплайна с оператором |> для трансформаций данных, behaviour callbacks для полиморфизма. Обосновывает компромиссы паттернов для OTP-based архитектур.
Обладает глубокой экспертизой в паттернах проектирования для Elixir/OTP: проектирует отказоустойчивые архитектуры со стратегиями supervision, внедряет доменно-ориентированные паттерны, адаптированные для функционального программирования, оптимизирует паттерны GenServer и процессов для масштабируемости. Менторит команду по паттернам проектирования OTP для распределённых Elixir-систем.
Адаптирует паттерны проектирования для идиоматического Elixir с использованием OTP-поведений. Внедряет GenServer, Supervisor, GenStage и Broadway для построения устойчивых конвейеров обработки данных. Обучает команду применению функциональных паттернов и протоколов.
Оптимизация БД 3
▼
Создаёт базовые индексы в Ecto-миграциях для PostgreSQL: одноколоночные, уникальные и составные. Понимает влияние индексов на скорость SELECT-запросов в Elixir-приложениях. Использует create index и create unique_index в миграциях mix ecto.gen.migration.
Самостоятельно проектирует схемы и оптимизирует запросы с Индексирование БД. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Проектирует стратегию индексирования для PostgreSQL в Elixir-проектах. Создаёт частичные, GIN, GiST и BRIN-индексы через Ecto-миграции с execute/1. Анализирует query plans через EXPLAIN ANALYZE, оптимизирует индексы для Ecto-запросов с preload и join.
Определяет политику индексирования PostgreSQL для всех Elixir-сервисов. Внедряет автоматический мониторинг неиспользуемых индексов через pg_stat_user_indexes и :telemetry. Проектирует стратегию создания индексов concurrently через Ecto-миграции без даунтайма.
Пишет эффективные Ecto-запросы для PostgreSQL в Elixir-приложениях. Избегает проблемы N+1 через Ecto.Query.preload, использует select для выборки нужных полей. Понимает разницу между preload, join и subquery в контексте производительности.
Самостоятельно проектирует схемы и оптимизирует запросы с Оптимизация запросов. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Оптимизирует сложные Ecto-запросы к PostgreSQL: CTE через fragments, оконные функции, материализованные представления. Анализирует EXPLAIN ANALYZE для выявления seq scan и nested loops. Применяет Ecto.Multi и stream для обработки больших датасетов без OOM.
Проектирует систему мониторинга и оптимизации запросов для Elixir-платформы. Внедряет pg_stat_statements через :telemetry для отслеживания медленных запросов. Определяет стандарты написания Ecto-запросов, настраивает алерты на деградацию производительности через Prometheus.
Использует базовые транзакции в Elixir через Ecto.Repo.transaction/1 для атомарных операций. Понимает концепции ACID в контексте PostgreSQL и Ecto. Обрабатывает ошибки транзакций через pattern matching на {:ok, result} и {:error, reason}.
Самостоятельно проектирует схемы и оптимизирует запросы с Транзакции и конкурентность. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Реализует сложные транзакционные сценарии через Ecto.Multi для цепочек операций с rollback. Настраивает уровни изоляции PostgreSQL для конкурентных Elixir-процессов. Применяет advisory locks через Ecto для координации между GenServer-процессами и нодами кластера.
Проектирует транзакционную архитектуру для распределённых Elixir-систем. Внедряет Saga-паттерн через Ecto.Multi и GenServer для межсервисных операций. Определяет стратегию оптимистичных блокировок через Ecto.Changeset.optimistic_lock и обработки конфликтов.
Очереди сообщений 4
▼
Использует Apache Kafka на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Реализует интеграцию Kafka для Elixir-сервисов: Broadway/Kafka consumer-пайплайны с backpressure, обработка событий на GenStage и эффективное назначение партиций для BEAM-процессов. Настраивает consumer groups, используя модель конкурентности Elixir. Реализует отказоустойчивую обработку сообщений со стратегиями supervisor.
Интегрирует Apache Kafka в Elixir-приложения через Broadway с KafkaBroadway-адаптером. Настраивает consumer groups, управляет offset-коммитами и партициями. Реализует обработку сообщений с back-pressure и автоматическим масштабированием процессов через Broadway.
Проектирует архитектуру событийных Elixir-систем на базе Kafka и Broadway. Определяет стратегию партиционирования, настраивает батчинг и конкурентную обработку через Broadway pipelines. Внедряет dead letter queues, мониторинг lag через :telemetry и Prometheus.
Использует NATS / NATS JetStream на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует задачи с NATS / NATS JetStream. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Проектирует NATS JetStream-систему обмена сообщениями для Elixir-микросервисов. Реализует паттерны exactly-once доставки с Elixir-консьюмерами. Оптимизирует иерархии субъектов для мультитенантных OTP-приложений.
Определяет архитектурные решения по NATS / NATS JetStream на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Использует RabbitMQ на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.
Самостоятельно реализует RabbitMQ-messaging в Elixir через Broadway/AMQP-библиотеку. Использует OTP supervision trees для отказоустойчивости consumer'ов. Настраивает prefetch counts и стратегии подтверждения для надёжной обработки.
Проектирует архитектуру messaging на RabbitMQ для Elixir/OTP-систем. Реализует кастомные Broadway-продюсеры с backpressure, shovel/federation для связи кластеров. Оптимизирует конкурентность consumer'ов, используя возможности планировщика BEAM.
Определяет архитектурные решения по RabbitMQ на уровне продукта. Формирует стандарты. Проводит design review и определяет технический roadmap.
Понимает паттерны брокеров сообщений в Elixir/OTP: pub-sub через Broadway, work queues через GenStage. Следует командным конвенциям для потребления сообщений из RabbitMQ/Kafka с использованием встроенных примитивов конкурентности и supervision trees.
Работает с messaging в Elixir: использует Broadway для concurrent message processing из RabbitMQ/Kafka/SQS, настраивает GenStage для internal event processing pipeline. Применяет OTP supervisor patterns для отказоустойчивой обработки сообщений с автоматическим перезапуском.
Проектирует messaging-архитектуру для Elixir-систем: определяет границы между BEAM distribution и external brokers, реализует event sourcing через Commanded framework, настраивает Broadway с custom acknowledger для exactly-once semantics. Оптимизирует concurrent processing через process pooling.
Стандартизирует messaging в Elixir-экосистеме: проектирует архитектуру с Commanded для CQRS/ES, внедряет EventStore для durable event log, создает internal libraries для стандартизации Broadway pipeline. Определяет паттерны для distributed saga через process managers.
Протоколы API 2
▼
Понимает основы gRPC в Elixir: определения proto-файлов, кодогенерация через grpc-elixir и базовые unary-вызовы. Следует командным паттернам для реализации gRPC-сервисов с моделью конкурентности Elixir и OTP supervision.
Разрабатывает gRPC-сервисы на Elixir: реализует gRPC-серверы через grpc-elixir с поддержкой streaming, интегрирует с OTP supervision trees для отказоустойчивости. Использует GenServer паттерны для stateful gRPC-обработки и настраивает Telemetry для метрик.
Проектирует gRPC-интеграцию для Elixir-систем: использует BEAM distribution для внутренней коммуникации и gRPC для cross-language взаимодействия, настраивает connection management с учётом BEAM scheduler, реализует deadline propagation через process metadata. Оптимизирует для высокой concurrency.
Стандартизирует gRPC в Elixir-экосистеме: определяет когда использовать gRPC vs BEAM distribution vs Phoenix Channels, создает внутренние библиотеки-обёртки для упрощения gRPC-разработки. Проектирует паттерны для интеграции gRPC с GenStage/Broadway для data pipeline обработки.
Реализует базовые WebSocket-соединения в Phoenix через Channels. Создаёт каналы с обработкой join, handle_in и handle_out. Подключает JavaScript-клиент через phoenix.js, отправляет и получает сообщения с базовой обработкой событий в реальном времени.
Разрабатывает real-time функциональность на Phoenix Channels с авторизацией через socket assigns и токены. Реализует presence tracking через Phoenix.Presence для отслеживания онлайн-пользователей. Настраивает PubSub для распределённой рассылки сообщений между нодами.
Проектирует масштабируемые WebSocket-системы на Phoenix с LiveView для серверного рендеринга в реальном времени. Оптимизирует Phoenix.PubSub для миллионов подписок, настраивает кластеризацию через pg2/Phoenix.PubSub.PG2. Реализует graceful degradation с long polling.
Определяет архитектуру real-time систем для Elixir-платформы на базе Phoenix Channels и LiveView. Проектирует масштабирование PubSub через Redis или distributed Erlang, определяет стандарты протоколов обмена сообщениями. Внедряет мониторинг соединений через :telemetry.
Реляционные БД 1
▼
Выполняет базовые SQL-запросы к PostgreSQL через Ecto в Elixir-проектах. Создаёт простые схемы с полями, типами и ассоциациями (has_many, belongs_to). Использует Ecto.Query для выборок, фильтрации и сортировки данных в Phoenix-приложениях.
Самостоятельно проектирует схемы и оптимизирует запросы с PostgreSQL. Понимает индексирование и планы выполнения запросов. Использует Ecto эффективно.
Оптимизирует работу с PostgreSQL в Elixir через продвинутые возможности Ecto: multi-tenant архитектуру с prefix, оконные функции через fragments, CTE и рекурсивные запросы. Настраивает Ecto.Repo с пулом соединений через DBConnection для высоких нагрузок.
Проектирует архитектуру данных PostgreSQL для Elixir-платформы. Определяет стратегию партиционирования, репликации и шардирования. Внедряет Ecto.Multi для транзакционной целостности сложных операций, настраивает мониторинг запросов через Ecto.LogEntry и :telemetry.
Стратегия тестирования 1
▼
Понимает основы property-based тестирования с StreamData и ExUnitProperties. Пишет базовые property-тесты для чистых функций Elixir. Следует командным соглашениям по определению генераторов и структуре тестов.
Реализует property-based тесты в Elixir с использованием StreamData. Определяет генераторы для базовых типов и Ecto-схем, пишет свойства для проверки инвариантов бизнес-логики. Интегрирует StreamData с ExUnit через use ExUnitProperties для автоматической генерации тест-кейсов.
Проектирует комплексное property-based тестирование для Elixir-проектов через StreamData. Создаёт кастомные генераторы для сложных доменных объектов, реализует stateful-тесты для GenServer. Применяет shrinking для минимизации failing-кейсов, тестирует Ecto-запросы и протоколы.
Внедряет property-based тестирование как стандартную практику во всех Elixir-проектах. Определяет стратегию тестирования через StreamData для критических модулей, обучает команду написанию свойств и генераторов. Создаёт библиотеку общих генераторов для доменных объектов организации.
Управление API 3
▼
Понимает rate limiting в Elixir: знает Hammer library для rate limiting, умеет применить plug для ограничения запросов в Phoenix. Понимает как ETS-based rate limiting работает в BEAM контексте.
Реализует rate limiting в Elixir: использует ExRated или PlugAttack для Phoenix applications, настраивает ETS-based counters с periodic cleanup через GenServer. Реализует per-user и per-IP limiting с custom key extraction из Plug.Conn.
Проектирует rate limiting для Elixir-систем: реализует distributed rate limiting через BEAM distribution с :global или Horde, настраивает Redis-based limiting для multi-node clusters, проектирует backpressure через GenStage demand. Оптимизирует ETS access patterns для concurrent rate checking.
Стандартизирует rate limiting в Elixir-экосистеме: создает Hex package для стандартного rate limiting setup, проектирует centralized rate limit configuration через Etcd/Consul, внедряет Telemetry metrics для rate limit observability. Определяет API quota management для Phoenix-based APIs.
Документирует Elixir-модули и функции через @moduledoc и @doc атрибуты. Генерирует документацию через ExDoc с mix docs. Описывает API-эндпоинты Phoenix с примерами запросов и ответов, поддерживает typespecs для автодокументирования типов в ExDoc.
Разрабатывает структурированную документацию API на Phoenix с OpenAPI через open_api_spex. Настраивает Swagger UI для интерактивного тестирования эндпоинтов. Генерирует автоматическую документацию из Ecto-схем и контроллеров, ведёт changelog и руководства через ExDoc.
Проектирует систему документирования API для Elixir-проектов с автогенерацией из typespecs и open_api_spex. Внедряет contract testing через спецификации, настраивает CI-валидацию актуальности документации. Создаёт интерактивные примеры с Livebook для сложных интеграций.
Определяет стандарты документирования API для всех Elixir-сервисов организации. Внедряет developer portal с ExDoc, OpenAPI-спецификациями и Livebook-примерами. Проектирует автоматическую генерацию SDK из спецификаций и систему версионирования документации.
Понимает необходимость версионирования API в Phoenix-приложениях. Реализует базовое версионирование через URL-префиксы (/api/v1, /api/v2) с помощью scope в Phoenix Router. Поддерживает обратную совместимость при добавлении новых полей в JSON-ответы.
Реализует версионирование API в Phoenix через scope-маршруты и Plug-пайплайны. Поддерживает параллельные версии с разделением контроллеров и view-модулей. Применяет header-based версионирование через кастомный Plug, обеспечивает миграцию клиентов между версиями.
Проектирует стратегию версионирования API для Phoenix с минимизацией дублирования кода. Реализует content negotiation через Accept headers и кастомные MIME-типы. Внедряет deprecation policy с предупреждениями в заголовках ответов и мониторинг использования версий.
Определяет политику версионирования API для всех Elixir-сервисов. Проектирует архитектуру с API Gateway на Phoenix для маршрутизации между версиями. Внедряет автоматическое тестирование обратной совместимости через open_api_spex и contract tests на уровне CI.
Функциональное программирование 3
▼
Понимает базовые принципы иммутабельности в Elixir — все структуры данных иммутабельны по умолчанию. Следует паттернам команды для работы с иммутабельными maps, lists и structs без попыток мутации. Осознаёт, как pattern matching и композиция функций заменяют традиционное манипулирование мутабельным состоянием в кодовых базах Elixir.
Самостоятельно применяет паттерны иммутабельности в бэкенд-сервисах Elixir, включая персистентные структуры данных, structural sharing и эффективные пайплайны трансформации с Enum и Stream. Пишет чистые функции, трансформирующие иммутабельное состояние через callback'и GenServer и изоляцию состояния на уровне процессов. Понимает влияние копирования иммутабельных данных на производительность и использует оптимизированную модель памяти BEAM.
Проектирует архитектуры приложений Elixir, максимально используя преимущества иммутабельности для конкурентной безопасности и отказоустойчивости. Внедряет продвинутые паттерны — кэширование на ETS с иммутабельными снапшотами, event sourcing с иммутабельными логами событий и CQRS-архитектуры с иммутабельными структурами команд и событий. Оптимизирует пайплайны трансформации данных, понимая structural sharing и семантику копирования бинарных данных в BEAM VM.
Определяет архитектурные стандарты immutability-first для бэкенд-систем на Elixir в организации. Формирует рекомендации команды по использованию иммутабельных структур данных в дизайне распределённых систем, управлении состоянием процессов и протоколах межсервисного взаимодействия. Проводит архитектурные ревью, обеспечивая последовательное применение принципов иммутабельности для конкурентной безопасности и надёжности систем.
Понимает основы Монады и функторы на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет монадические паттерны (цепочки with/case, Result-кортежи) для композируемой обработки ошибок в Elixir-пайплайнах. Понимает компромиссы между Railway-ориентированным программированием и потоками на исключениях. Объясняет функторное отображение над Ecto changeset и опциональными типами на код-ревью.
Проектирует композируемые middleware-пайплайны с использованием монадических паттернов в Elixir (цепочки Plug, композиция транзакций Ecto.Multi). Архитектурит стратегии обработки ошибок, сочетая with-выражения, тегированные кортежи и деревья супервизии. Менторит разработчиков в алгебраическом мышлении и понимании, когда отказаться от монадических абстракций в пользу OTP-паттернов.
Определяет стандарты использования Монады и функторы на уровне команды/продукта. Проводит архитектурные review. Формирует best practices и обучающие материалы для всей команды.
Понимает основы Основы функционального программирования на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Уверенно применяет принципы ФП в Elixir: pattern matching, иммутабельные данные, чистые функции и pipe-трансформации. Понимает, когда использовать процессы вместо чистых функций для управления состоянием. Ревьюит код на изоляцию побочных эффектов и корректное использование GenServer callbacks.
Проектирует системы на Elixir с глубоким знанием ФП: supervision trees с чистой бизнес-логикой, отделённой от побочных эффектов, пайплайны данных через Stream и Flow с учётом backpressure. Менторит команду по монадической обработке ошибок через with-выражения и использованию behaviours.
Применяет продвинутые функциональные паттерны в Elixir: монадические цепочки через with, протоколы для полиморфизма, макросы для метапрограммирования. Проектирует модульные системы с чистыми функциями, pipe-операторами и pattern matching для сложной бизнес-логики.
Чистый код и рефакторинг 1
▼
Понимает основы Качество кода и рефакторинг на базовом уровне. Применяет простые концепции в рабочих задачах с использованием Elixir. Следует рекомендациям senior-разработчиков при решении задач.
Самостоятельно применяет практики качества кода в Elixir/OTP-разработке. Пишет чистые реализации GenServer и Supervisor с правильной документацией. Понимает компромиссы между изоляцией процессов и общим состоянием. Ревьюит код на правильную обработку ошибок, ясность pattern matching и соблюдение OTP-конвенций.
Проектирует стандарты качества кода для Elixir/OTP-проектов: конфигурация Credo, спецификации dialyzer, паттерны архитектуры процессов. Рефакторит иерархии GenServer для отказоустойчивости и ясности. Устанавливает практики ревью для паттернов конкурентности, деревьев супервизоров и горячего обновления кода.
Внедряет комплексную систему качества кода для Elixir-проектов: Credo для линтинга, Dialyzer для статического анализа типов через typespecs, ExUnit для покрытия тестами. Настраивает CI-пайплайн с mix format, mix credo --strict и dialyzer в качестве обязательных проверок.