Выберите текущую позицию
Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.
Путь развития
Junior
0-2 года
Ответственность: Разработка CRUD-функциональности в Laravel/Symfony. Написание миграций и моделей Eloquent/Doctrine. Написание feature-тестов. Исправление багов. Работа с Blade/Twig шаблонами.
Ключевые навыки:
Middle
2-5 лет
Ответственность: Проектирование REST API. Работа с очередями (Laravel Queue/Symfony Messenger). Оптимизация N+1 запросов. Настройка кэширования. Интеграция с внешними API. Code review.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Senior
5-8 лет
Ответственность: Проектирование архитектуры приложения (DDD, Hexagonal). Оптимизация производительности (OPcache, Swoole/RoadRunner). Миграция на PHP 8.3+. Проектирование event-driven систем.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Lead / Staff
7-12 лет
Ответственность: Микросервисная архитектура на PHP. Стандарты кодирования. Стратегия модернизации legacy-кода. Выбор фреймворков. Координация backend и frontend.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Principal
10+ лет
Ответственность: Технологическая стратегия: PHP vs другие языки. Модернизация enterprise-приложений. Архитектура масштабируемых систем. Участие в PHP-коммьюнити.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Gap-анализ: навыки для развития
Для перехода на следующий уровень необходимо развить:
Разрабатывает producers и consumers. Понимает partitions, consumer groups, offsets. Обрабатывает ошибки: retry, dead letter queue. Использует Avro/Protobuf для сериализации. Настраивает delivery guarantees (at-least-once, exactly-once).
Решает connection management в PHP: настраивает PgBouncer/ProxySQL как внешний connection pooler для PHP-FPM, оптимизирует persistent connections с учётом FPM lifecycle. Мониторит количество connections через database status commands и настраивает wait_timeout.
Реализует CQRS в PHP-проектах: использует Symfony Messenger или Ecotone для command/query bus, создает отдельные Doctrine read models (QueryBuilder + DTO) от write models (Entity + Repository). Настраивает event handlers для синхронизации read моделей.
Самостоятельно реализует задачи с Elasticsearch / OpenSearch. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Проектирует эффективные схемы: relay-style pagination, input types, unions/interfaces для полиморфизма. Решает N+1 через DataLoader. Реализует subscriptions для real-time. Настраивает query complexity limits.
Интегрирует PHP-приложения с gRPC-сервисами: генерирует PHP-клиенты из .proto через protoc, настраивает channel credentials для TLS, обрабатывает ошибки через Status codes. Использует Spiral/RoadRunner для реализации gRPC-серверов на PHP без ограничений FPM.
Проектирует нормализованные схемы для бизнес-доменов. Оптимизирует запросы через EXPLAIN и профайлинг slow query log. Использует специфику MySQL: партиционирование, full-text search, JSON-колонки. Настраивает репликацию master-slave для read scaling.
Самостоятельно реализует задачи с PHP Frameworks. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Использует возможности PostgreSQL: JSONB для semi-structured данных, CTE для сложных запросов, window functions для аналитики. Работает с GIN/GiST индексами. Настраивает pg_stat_statements для мониторинга. Применяет LISTEN/NOTIFY для real-time событий.
Проектирует топологию обменников: fanout для broadcast, topic для маршрутизации, headers для сложных правил. Настраивает dead letter queues и retry-механизмы. Обеспечивает idempotent обработку сообщений.
Реализует rate limiting в PHP-проектах: настраивает custom RateLimiter в Laravel с per-user и per-IP стратегиями, использует Symfony RateLimiter component с token bucket и sliding window. Применяет Redis для distributed rate limiting между FPM-процессами.
Применяет разные стратегии: cache-aside, write-through, write-behind. Использует Redis для очередей (lists), rate limiting (sorted sets), pub/sub. Проектирует ключи с namespace-ами. Обрабатывает cache stampede.
Проектирует API с пагинацией, фильтрацией, сортировкой и partial responses. Реализует HATEOAS-ссылки. Версионирует API. Применяет rate limiting и throttling. Документирует через OpenAPI/Swagger.
Самостоятельно реализует задачи с Task Queues. Понимает внутреннее устройство и оптимизирует производительность. Пишет тесты.
Анализирует алгоритмическую сложность PHP-кода и SQL-запросов. Оптимизирует обработку коллекций — заменяет вложенные циклы на хеш-таблицы. Применяет бинарный поиск, жадные алгоритмы в бизнес-логике. Профилирует через Xdebug.
Проектирует асинхронные потоки: очереди с приоритетами, отложенные задачи, retry-логика. Работает с message broker-ами для межсервисного общения. Обрабатывает ошибки и dead letter queues. Использует Fibers для concurrent I/O.
Генерирует OpenAPI-спецификацию из кода автоматически. Создаёт примеры для каждого сценария: успех, ошибки валидации, 404, 500. Версионирует документацию. Добавляет authentication-секцию с примерами.
Анализирует планы выполнения через EXPLAIN ANALYZE. Создаёт составные индексы с учётом selectivity и порядка колонок. Использует covering indexes для оптимизации частых запросов. Мониторит неиспользуемые индексы и их влияние на скорость записи.
Настраивает статический анализ на высоком уровне строгости. Рефакторит legacy-код: выделяет методы, упрощает условия, убирает god-classes. Пишет self-documenting code. Проводит code review коллег.
Пишет safe-миграции для PHP-проектов: добавление колонок с default, индексов без блокировки, разделение destructive изменений на этапы. Управляет seed-данными. Обеспечивает rollback-возможность для каждой миграции. Тестирует миграции на копии production-данных.
Оптимизирует SQL-запросы в PHP-приложениях: устраняет N+1 через eager loading, переписывает subqueries в JOIN-ы, использует batch operations. Анализирует slow query log. Применяет query builder и raw SQL когда ORM генерирует неоптимальные запросы.
Настраивает load balancing (L4 vs L7), reverse proxy, SSL termination. Понимает CDN-архитектуру. Диагностирует latency issues. Работает с WebSockets и SSE для real-time.
Работает с messaging в PHP: использует Symfony Messenger с RabbitMQ/Redis транспортом, настраивает Laravel Horizon для мониторинга очередей, применяет routing по message type. Обрабатывает failed jobs через retry и dead letter queues, настраивает приоритетные очереди.
Применяет паттерны осознанно: Observer для событий, Decorator для расширения функциональности, Chain of Responsibility для middleware. Рефакторит код с использованием подходящих паттернов. Понимает anti-patterns.
Применяет SOLID на практике: выделяет интерфейсы, использует композицию вместо наследования, соблюдает LSP. Проектирует иерархии классов для бизнес-домена. Пишет код с low coupling и high cohesion.
Проектирует схемы данных для бизнес-доменов: нормализация до 3NF, денормализация для производительности, полиморфные связи. Моделирует soft deletes, версионирование записей, аудит-логи. Выбирает между EAV и JSON-колонками для гибких атрибутов.
Реализует версионирование: роутинг по версиям, трансформеры для разных форматов ответов, deprecation headers. Определяет breaking vs non-breaking changes. Мигрирует клиентов между версиями.
Реализует многоуровневое кэширование: OPcache для bytecode, APCu для локальных данных, Redis для shared cache. Проектирует стратегии инвалидации: TTL, event-based, tag-based. Измеряет hit/miss ratio.
Выбирает структуры под задачу: SplPriorityQueue для очередей, SplFixedArray для числовых данных, generators для стриминга. Понимает внутреннее устройство PHP array как hash table. Работает с деревьями категорий и графами зависимостей.
Автоматизирует API-тесты: integration tests для всех эндпоинтов, assertion на структуру ответа, тестирование auth flow. Создаёт fixtures и factories для тестовых данных. Запускает в CI.
Самостоятельно применяет возможности системы типов PHP — intersection types, enum с backed values и readonly properties для иммутабельных DTO. Понимает компромиссы между строгостью уровней phpstan и скоростью разработки. Применяет типобезопасные паттерны с дженериками в doc-blocks, типизированными коллекциями и строгими объявлениями типов возврата при ревью кода.
Самостоятельно проектирует стратегии управления транзакциями в PHP-приложениях с использованием PDO, Doctrine или Eloquent ORM. Реализует корректные границы транзакций для сложных бизнес-операций. Обрабатывает deadlock detection и retry-логику, управляет savepoints и оптимизирует длительность транзакций.
Работает с шардированием в PHP: реализует multi-tenant database routing в Laravel через database resolver, настраивает Doctrine DBAL с multiple connections, применяет shard selection middleware. Использует ProxySQL для transparent routing на уровне БД.