Роли · Backend Developer (PHP) · Junior

Что должен уметь Junior }

27 ключевых навыков, всего 63. Ожидания по каждому навыку и что меняется на следующем уровне.

На этой странице — что ожидается от Junior }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Backend Development, Базы данных.

27ключевых навыков
36дополнительных навыков
5областей
0%на уровне Продвинутый или Эксперт
Оценить себя как Junior Полная матрица роли

Ключевые навыки для Junior

Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.

Основы программирования · 7

Алгоритмы и сложность Осведомлённость

Знает базовые алгоритмы сортировки и поиска. Оценивает O(n) для простых циклов. Выбирает между array_search, in_array и isset по ситуации. Понимает, почему вложенные циклы — проблема на больших данных.

Понимает концепцию асинхронности. Работает с очередями задач для фоновой обработки. Выносит тяжёлые операции (email, генерация отчётов) в background jobs. Знает разницу между sync и async обработкой.

Следует coding standards (PSR-12). Пишет понятные имена переменных и функций. Убирает дублирование кода. Использует линтеры (PHP_CodeSniffer, PHPStan) и исправляет замечания.

Паттерны проектирования Осведомлённость

Знает и применяет базовые паттерны: Singleton, Factory, Strategy. Понимает зачем нужна инъекция зависимостей. Использует Repository для работы с БД. Следует паттернам, принятым в проекте.

Принципы ООП и SOLID Осведомлённость

Создаёт классы с инкапсуляцией, наследованием и полиморфизмом. Понимает интерфейсы и абстрактные классы. Следует принципу единой ответственности в своём коде. Использует type hints и return types.

Структуры данных Осведомлённость

Работает с массивами, ассоциативными массивами и объектами PHP. Понимает разницу между индексированным и ассоциативным массивом. Использует array_map, array_filter, usort для обработки данных.

Понимает основы системы типов PHP — объявление strict_types, type hints для параметров функций и типов возврата, и union types. Следует принятым в команде соглашениям по уровням статического анализа PHPStan/Psalm и типизированным объявлениям свойств.

Backend Development · 7

Паттерны Message Brokers Осведомлённость

Понимает паттерны брокеров сообщений в PHP: pub-sub через Symfony Messenger, queue workers через Laravel Queues. Следует командным конвенциям для диспатчинга и потребления сообщений через драйверы Redis, RabbitMQ или SQS.

Стратегии кэширования Осведомлённость

Понимает зачем нужно кэширование и основные стратегии. Кэширует результаты тяжёлых запросов в приложении. Использует HTTP-кэширование (Cache-Control, ETag). Знает проблему устаревания кэша.

Elasticsearch / OpenSearch Осведомлённость

Использует Elasticsearch / OpenSearch на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.

PHP Frameworks Осведомлённость

Использует PHP Frameworks на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.

RabbitMQ Осведомлённость

Отправляет и получает сообщения через очереди. Понимает концепции exchange, queue, routing key. Настраивает простые direct-exchange маршруты. Обрабатывает сообщения с ack/nack.

Redis Осведомлённость

Использует Redis для кэширования результатов запросов и сессий. Устанавливает TTL для ключей. Работает с командами GET/SET/DEL. Понимает, когда кэширование ускоряет, а когда создаёт проблемы.

Task Queues Осведомлённость

Использует Task Queues на базовом уровне. Выполняет простые задачи по готовым шаблонам. Понимает базовые концепции и следует принятым в команде практикам.

Базы данных · 7

Индексирование БД Осведомлённость

Создаёт простые индексы для ускорения WHERE и JOIN. Понимает разницу между PRIMARY, UNIQUE и обычным индексом. Знает, что индексы замедляют INSERT/UPDATE. Использует EXPLAIN для проверки.

Миграции БД Осведомлённость

Создаёт миграции для изменения схемы БД: добавление таблиц, колонок, индексов. Понимает forward и rollback. Тестирует миграции локально перед применением. Следует naming conventions.

Оптимизация запросов Осведомлённость

Использует EXPLAIN для анализа планов выполнения. Добавляет индексы для медленных запросов. Избегает SELECT * и N+1 проблемы. Понимает разницу между lazy и eager loading в ORM.

Проектирует простые схемы: таблицы, связи один-к-одному, один-ко-многим, многие-ко-многим. Нормализует до 3NF. Выбирает правильные типы данных. Понимает, когда нужен soft delete.

Использует транзакции для атомарных операций: BEGIN/COMMIT/ROLLBACK. Понимает ACID-свойства. Оборачивает в транзакцию связанные изменения. Знает про уровни изоляции на базовом уровне.

MySQL / MariaDB Осведомлённость

Пишет SQL-запросы: SELECT с JOIN, WHERE, GROUP BY, ORDER BY. Создаёт таблицы с правильными типами данных и constraints. Понимает foreign keys и индексы. Работает с MySQL Workbench или аналогом.

PostgreSQL Осведомлённость

Работает с PostgreSQL: пишет SQL-запросы, создаёт таблицы, понимает типы данных (jsonb, arrays, uuid). Использует pgAdmin или CLI. Понимает отличия от MySQL в синтаксисе и типах.

API и интеграции · 5

Документирование API Осведомлённость

Описывает эндпоинты: request/response примеры, обязательные параметры, коды ошибок. Использует OpenAPI-аннотации в коде. Поддерживает Swagger UI актуальным. Документирует edge cases.

Понимает зачем нужно версионирование API. Знает подходы: URL-path, header, query parameter. Следует версионной политике проекта. Поддерживает обратную совместимость в своих изменениях.

Тестирование API Осведомлённость

Тестирует API вручную через Postman/Insomnia. Создаёт коллекции запросов. Проверяет статус-коды, тело ответа, headers. Пишет простые автоматические тесты для основных эндпоинтов.

GraphQL Design Осведомлённость

Создаёт простые GraphQL-схемы: типы, queries, mutations. Понимает разницу с REST. Реализует resolvers для основных операций. Использует GraphQL playground для тестирования.

REST API Design Осведомлённость

Создаёт CRUD-эндпоинты с правильными HTTP-методами и статус-кодами. Следует RESTful-конвенциям: именование ресурсов, вложенность. Возвращает JSON с консистентной структурой. Обрабатывает ошибки с понятными сообщениями.

Облако и инфраструктура · 1

Основы сетей Осведомлённость

Понимает TCP/IP, DNS, HTTP/HTTPS на практическом уровне. Отлаживает сетевые проблемы через curl, ping, traceroute. Знает разницу между HTTP 1.1 и 2.0. Понимает SSL/TLS-сертификаты.

Дополнительные навыки

Команда их не оценивает, но они входят в самооценку и план развития.

Декомпозиция на микросервисыИнтеграционное тестированиеМногопоточное программированиеОсновы System DesignПрактики безопасного кодаПроектирование WebSocket APIСтруктурированное логированиеШардирование БДApache KafkaAWSChatGPT / ClaudeClean ArchitectureCode ReviewConnection PoolingCQRSCursor IDEDockerE2E тестированиеELK StackEvent-Driven ArchitectureGit AdvancedGitHub Actions / GitLab CIGitHub CopilotgRPC и Protocol BuffersgRPC и Protocol BuffersJWT / OAuth2 / OIDCKubernetes CoreOpenTelemetryOWASP и безопасность приложенийPrometheus и GrafanaPrompt Engineering для кодаRate Limiting и ThrottlingSLI / SLO / SLATDD и BDDTerraformUnit-тестирование

Что меняется на Middle

63 навыков получают более высокое ожидание или становятся ключевыми при переходе с Junior на Middle. Сначала самые большие скачки.

Страница Middle →
Прогоните это со всей командой
Самооценка плюс оценка руководителя и коллег по одной матрице, зоны роста и готовность к следующему уровню для каждого инженера. Team Pro бесплатно 14 дней; личные инструменты бесплатны всегда.
Попробовать с командой (14 дней бесплатно) Отправить тимлиду

} в открытой матрице компетенций: 63 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.