Матрица навыков PHP developer

Публичный пример ролевой матрицы для backend-инженеров, работающих с PHP.

Go developer PHP developer Python developer .NET developer DevOps engineer DBA Юрист
Джуниор Мидл Сеньор TechLead Principal
Язык PHP
Основы и экосистема
Пишет поддерживаемый PHP 8 код

Использует строгую типизацию, интерфейсы, traits и стандартные паттерны без лишнего усложнения.

Корректно обрабатывает исключения

Не игнорирует ошибки, оборачивает их с контекстом, различает иерархии исключений и checked/unchecked подходы.

Применяет interfaces и composition

Проектирует зависимости через интерфейсы, разделяет domain, transport и infrastructure слои.

Рефакторит безопасно

Улучшает структуру кода, сохраняя поведение и обратную совместимость.

Эффективно использует Composer и экосистему

Предпочитает battle-tested библиотеки, оценивает зависимости по активности и совместимости.

Задает стандарты языка и кодовой базы

Определяет соглашения по PSR-стандартам, стратегии исключений, code review и общим утилитам.

Проектирует shared abstractions

Создаёт переиспользуемые компоненты, которые снижают когнитивную нагрузку и не создают лишней связности.

Ведёт ревью критичных изменений

Выявляет архитектурные риски, проблемы безопасности и нарушения совместимости в PR.

Определяет структуру пакетов для проектов

Задаёт структуру репозитория так, чтобы команда двигалась единообразно и не принимала ad-hoc решений.

Принимает решения по спорным деталям реализации

Разрешает разногласия в команде по техническим подходам, аргументируя через принципы, а не вкусовщину.

Формирует культуру code review

Создаёт среду, где ревью приносит ценность: учит, а не придирается, снижает риски, а не затягивает поставку.

Контролирует рост технического долга

Отслеживает накопление tech debt и включает его погашение в roadmap наравне с новыми фичами.

Задаёт языковые стандарты для нескольких команд

Формирует engineering handbook с обоснованными решениями, которые работают в разных контекстах.

Определяет, какие библиотеки принимаются в платформу

Оценивает зависимости по критериям: стабильность, поддержка, безопасность, lock-in риски.

Формирует roadmap инженерных практик

Планирует эволюцию стандартов с учётом роста команды, масштаба системы и бизнес-направления.

Влияет на технические решения через убеждение

Добивается принятия правильных решений без формальных полномочий, через аргументацию и доверие.

Публично представляет технические подходы команды

Выступает на конференциях, пишет статьи, участвует в open-source — формирует внешний авторитет.

Фоновая обработка
Реализует простые jobs в очереди

Понимает at-least-once семантику, пишет idempotent jobs и обрабатывает ошибки выполнения.

Понимает модель процессов PHP-FPM

Знает жизненный цикл запроса, разницу между web-процессом и CLI-воркером.

Строит надёжные worker-процессы

Проектирует обработчики с ограниченным параллелизмом, контролирует graceful shutdown и memory limits.

Реализует retry с backoff и timeout

Обрабатывает временные сбои без перегрузки downstream-сервисов и зависимостей.

Контролирует утечки ресурсов в long-running процессах

Выявляет и устраняет утечки памяти и незакрытые соединения при ревью и профилировании.

Проектирует background processing для высоких нагрузок

Выбирает паттерн: queue workers, cron, Fibers (8.1+) или async extension исходя из требований.

Анализирует узкие места worker-процессов

Использует profiling, memory dumps и трейсинг для поиска проблем производительности.

Задаёт паттерны для типовых сценариев команды

Определяет, какой подход (Messenger, queues, cron, async) использовать в каждом контексте.

Задаёт team-wide правила фоновой обработки

Выбирает базовые worker, queue и retry patterns так, чтобы команда не создавала нестабильных решений.

Ревьюит высоконагруженные флоу

Выявляет риски в критичных путях: memory leaks, starvation, thundering herd.

Управляет рисками при поставке фоновых задач

Убеждается, что CI проверяет критичные сценарии обработки и что DLQ мониторируется.

Интегрирует мониторинг воркеров в observability-стек

Обеспечивает алерты на lag очередей, execution time и error rate для каждого воркера.

Определяет платформенные стандарты async processing

Выбирает модели ограничения нагрузки на уровне нескольких сервисов и команд.

Проектирует стратегии масштабирования воркеров

Определяет, как масштабировать параллельную обработку без деградации смежных систем.

Формирует модель управляемой деградации

Задаёт принципы graceful degradation и circuit breaking на уровне домена.

Выявляет системные риски фоновой обработки

Проводит архитектурный анализ на предмет скрытых race conditions и deadlock-рисков в интеграциях.

Работа с данными
SQL и базы данных
Пишет корректные SQL-запросы

Использует JOIN, WHERE, индексы и параметризованные запросы, избегает SQL-инъекций.

Пишет и применяет миграции

Создаёт up/down миграции, понимает порядок применения и обратимость изменений схемы.

Оптимизирует медленные запросы

Читает EXPLAIN, добавляет индексы, устраняет N+1, переписывает subquery в JOIN там, где нужно.

Проектирует схему для новых фич

Нормализует данные разумно, учитывает nullable, constraints и сценарии удаления.

Управляет транзакциями и isolation levels

Выбирает правильный уровень изоляции, избегает deadlocks и long-running транзакций.

Задаёт database-стандарты команды

Определяет naming conventions, обязательные индексы, правила nullable и migration workflow.

Планирует безопасные миграции в production

Применяет zero-downtime паттерны: expand-contract, column backfill в несколько деплоев, lock-free alter.

Оценивает read/write patterns и выбирает стратегию

Решает, когда нужен read replica, кэш или event sourcing вместо classical CRUD.

Управляет connection pool в production

Настраивает параметры Doctrine/PDO connection pool, контролирует max connections и health check.

Контролирует database-риски в поставке

Проверяет, что миграции протестированы, обратимы и не вызовут деградации в production.

Синхронизирует migration strategy

Координирует database changes между несколькими сервисами и командами.

Задаёт policy индексирования

Определяет, кто и как добавляет индексы, как проходит review схемы, кто отвечает за performance regression.

Предотвращает опасные изменения схемы

Запрещает или согласует DROP, NOT NULL без default, full-table lock изменения в peak hours.

Определяет data strategy домена

Выбирает между SQL, NoSQL и смешанными хранилищами в зависимости от нагрузки, структуры и SLO.

Проектирует multi-tenant и multi-region хранилище

Закладывает partitioning, sharding и geo-distribution на уровне платформы.

Задаёт backup, restore и DR требования

Определяет RPO/RTO, тестирует восстановление, формирует runbook для инцидентов с данными.

Формирует capacity planning по данным

Прогнозирует рост объёмов, затраты на хранение и вовремя инициирует архитектурные изменения.

Управляет соответствием требованиям к данным

Обеспечивает выполнение GDPR, retention policy и audit trail на уровне нескольких систем.

Очереди и события
Пишет consumer с корректным ack/nack

Понимает at-least-once семантику, не теряет и не дублирует сообщения без причины.

Реализует простой producer

Публикует события с нужной структурой, обрабатывает ошибки отправки.

Реализует idempotent consumers

Обрабатывает дубликаты через deduplication key или идемпотентные операции в БД.

Проектирует dead-letter флоу

Настраивает DLQ, алерты на lag и процедуру reprocess для сломанных сообщений.

Следит за consumer lag

Настраивает мониторинг отставания consumer, выявляет и устраняет причины накопления.

Проектирует event-driven флоу с гарантиями доставки

Выбирает паттерн outbox, saga или choreography в зависимости от требований к консистентности.

Задаёт контракты событий

Определяет schema событий, versioning strategy и backward/forward compatibility.

Выбирает между sync и async интеграцией

Аргументирует выбор, понимая tradeoffs: latency, coupling, failure isolation, observability.

Задаёт queue-стандарты для команды

Определяет, какой брокер и паттерн использовать в каких сценариях, документирует решения.

Управляет observability очередей

Обеспечивает алерты на lag, DLQ рост и partition skew; налаживает runbook для on-call.

Управляет schema evolution событий

Координирует изменения в event schema между producer и consumer командами.

Синхронизирует event contracts между командами

Ведёт реестр событий, согласует breaking changes и организует совместное тестирование контрактов.

Определяет messaging strategy платформы

Выбирает брокеры, паттерны доставки и retention policy для всего домена.

Проектирует event sourcing на уровне домена

Задаёт, где хранить event log, как строить проекции и как обеспечить replay.

Формирует гарантии доставки и консистентности

Определяет уровень exactly-once или idempotency для критичных бизнес-операций.

Выявляет системные риски event-driven архитектуры

Анализирует cascade failure, ordering проблемы и distributed transaction риски.

Инфраструктура и поставка
Docker и контейнеры
Собирает multi-stage Docker-образы

Разделяет build и runtime стадии, не копирует ненужные артефакты в финальный образ.

Работает с локальной средой через Docker Compose

Запускает зависимости (БД, очереди, сервисы) локально, понимает volumes и сетевой namespace.

Оптимизирует образы по размеру и слоям

Правильно упорядочивает инструкции для кэширования слоёв, использует .dockerignore.

Настраивает healthcheck и graceful shutdown

Реализует /healthz endpoint, обрабатывает SIGTERM и ждёт завершения активных запросов.

Диагностирует проблемы внутри контейнеров

Читает логи, проверяет ресурсы, исследует файловую систему, работает с exec в prod-подобной среде.

Задаёт Dockerfile-стандарты команды

Определяет базовые образы, linting правила и review checklist для контейнерных артефактов.

Проектирует dev/prod паритет окружений

Обеспечивает, чтобы локальный Compose и production среда отличались минимально.

Оценивает image security

Запускает trivy/grype, отслеживает CVE в базовых образах, задаёт non-root user.

Задаёт базовые образы для команды

Выбирает и поддерживает golden images, управляет их обновлением и уведомлением команды.

Контролирует container security policy

Определяет политику запуска: non-root, read-only filesystem, resource limits, seccomp.

Управляет dependency update процессом

Обеспечивает регулярное обновление базовых образов и Composer-зависимостей с проверкой на уязвимости.

Интегрирует container scanning в CI

Добавляет автоматический image scan в pipeline, настраивает severity threshold и уведомления.

Определяет container strategy платформы

Выбирает runtime (Docker, containerd), orchestration и image registry стратегию.

Задаёт политику базовых образов для нескольких команд

Стандартизирует approved base images, enforcement механизм и process их обновления.

Проектирует observability в контейнерной среде

Стандартизирует log format, metrics exposition, tracing injection на уровне платформы.

Синхронизирует container standards между командами

Формирует RFC и ADR для платформенных решений, получает buy-in от tech leads команд.

Сборка и CI/CD
Понимает и читает pipeline

Разбирается в шагах CI: lint, test, build, deploy — знает, что каждый делает и где искать причину сбоя.

Фиксит flaky тесты в CI

Умеет найти причину нестабильного теста: race condition, зависимость от порядка, внешний сервис.

Настраивает pipeline для нового сервиса

Конфигурирует lint, test, build и deploy шаги с нужными environment variables и secrets.

Ускоряет медленные CI-флоу

Параллелизует шаги, кэширует зависимости и Composer packages, сокращает холодный старт.

Реализует canary или blue/green деплой

Разворачивает изменения постепенно, умеет откатить без downtime.

Проектирует deployment strategy для сервисов

Выбирает rolling, canary или blue/green исходя из SLO, объёма трафика и критичности.

Задаёт pipeline стандарты для команды

Определяет обязательные шаги: lint, security scan, test coverage, smoke test после деплоя.

Управляет rollback-процедурами

Документирует и тестирует процедуру отката, убеждается, что команда может откатить под давлением.

Внедряет автоматические quality gates

Блокирует деплой при деградации coverage, появлении CVE выше порога или падении smoke тестов.

Задаёт deployment governance команды

Определяет, что нужно для production-ready: checklist, approvals, observability requirements.

Устанавливает release gates и approval флоу

Балансирует скорость поставки и контроль риска: кто аппрувит, при каких условиях автоматически.

Контролирует production readiness новых сервисов

Проверяет, что сервис имеет healthcheck, метрики, алерты, runbook и документацию до деплоя.

Синхронизирует delivery process с другими командами

Координирует release windows, feature flags и зависимости при совместных поставках.

Определяет delivery strategy платформы

Выбирает модель деплоя и инструменты CI/CD на уровне нескольких команд.

Проектирует progressive delivery

Задаёт принципы feature flags, traffic splitting и automated rollback на уровне платформы.

Задаёт SLO для pipeline reliability

Определяет допустимое время сборки, процент flaky тестов и MTTR для CI-инфраструктуры.

Формирует change management policy

Задаёт правила для hot fix, emergency deploy и change freeze — с балансом скорости и безопасности.

Выявляет bottlenecks в delivery процессе

Измеряет DORA-метрики, находит ограничения и инициирует улучшения на уровне платформы.

Качество и надёжность
Тестирование
Пишет unit-тесты для business logic

Покрывает happy path и основные error branches с помощью PHPUnit или Pest.

Использует data providers для параметризации

Структурирует тест-кейсы через data providers, избегает дублирования и делает тесты читаемыми.

Пишет integration-тесты с реальными зависимостями

Использует testcontainers или in-memory БД — проверяет реальное поведение, а не только моки.

Корректно мокирует внешние сервисы

Выбирает между interface mock и HTTP stub в зависимости от уровня теста.

Пишет функциональные тесты для API

Проверяет HTTP-контракты, аутентификацию и граничные случаи через WebTestCase или аналоги.

Определяет test strategy для команды

Задаёт баланс между unit, integration и e2e тестами с учётом скорости и уверенности.

Внедряет contract testing

Использует schema-based или Pact-подход для проверки совместимости между сервисами.

Оценивает coverage осмысленно

Отличает полезное coverage от бессмысленного, фокусируется на критичных сценариях.

Проектирует testable architecture

Закладывает dependency injection и явные границы в дизайн, чтобы тестирование не требовало героизма.

Задаёт обязательный quality bar поставки

Определяет, без чего PR не принимается: минимум coverage, обязательные сценарии, performance tests.

Контролирует regression coverage

Следит за тем, чтобы после каждого инцидента добавлялся тест, предотвращающий повтор.

Исключает тесты без ценности

Ревьюит и удаляет тесты, которые только замедляют CI, но не повышают уверенность.

Управляет test debt

Ведёт список известных пробелов в покрытии и включает их устранение в roadmap.

Формирует test confidence model для нескольких сервисов

Задаёт, как совокупность тестов разных уровней обеспечивает уверенность в поставке.

Задаёт стандарты reliability testing

Определяет требования к load testing, chaos engineering и failure injection для критичных систем.

Проектирует chaos и fault injection

Внедряет systematic failure experiments для выявления слабых мест до production инцидентов.

Формирует приёмочные критерии для критичных систем

Задаёт технические условия запуска новых сервисов с высоким SLO: тесты, нагрузка, DR.

Метрики и наблюдаемость
Добавляет структурированные логи

Логирует достаточно, чтобы понять runtime behavior, без чувствительных данных и лишнего шума.

Использует метрики и dashboards команды

Читает существующие grafana-дашборды, понимает базовые RED-метрики своего сервиса.

Диагностирует инциденты по traces и metrics

Читает distributed traces, correlates logs и изолирует bottleneck или regression.

Строит alerting для новых сервисов

Создаёт алерты на error rate, latency p95 и saturation с правильными thresholds и runbook.

Интерпретирует latency распределения

Отличает p50 от p99, понимает tail latency и влияние PHP-FPM worker pool на графики.

Определяет SLI и SLO для сервисов

Выбирает значимые индикаторы качества, согласует цели с продуктом и устанавливает error budget.

Задаёт naming conventions для метрик

Определяет стандарты именования, labeling и cardinality ограничения для Prometheus.

Проектирует distributed tracing

Инструментирует сервисы с правильным span context, baggage и sampling strategy.

Ведёт постмортем инцидентов

Пишет blameless постмортем, выявляет системные причины и формирует action items.

Задаёт observability standards команды

Определяет обязательный минимум: что логировать, какие метрики инструментировать, как трейсить.

Контролирует alert fatigue

Регулярно ревьюит алерты: убирает лишние, улучшает thresholds, добавляет runbook.

Обеспечивает on-call readiness команды

Гарантирует, что у каждого сервиса есть runbook, алерты с описанием и escalation path.

Формирует культуру постмортема

Нормализует blameless review, следит за выполнением action items и делится знаниями с командой.

Определяет reliability strategy платформы

Выстраивает единый подход к SLO, error budget и incident management для всего домена.

Задаёт cross-service SLO и error budgets

Формирует dependency SLA между командами, связывает бюджеты с приоритетами поставки.

Проектирует centralized telemetry

Определяет платформенные инструменты сбора, хранения и визуализации observability данных.

Выстраивает feedback loop из production

Создаёт систему, при которой production-сигналы регулярно влияют на приоритеты команд.

Формирует стандарты incident management

Задаёт severity levels, escalation matrix, communication protocol и learning system для инцидентов.

Командная работа
Самостоятельность
Декомпозирует задачу самостоятельно

Разбивает задачу на понятные шаги, уточняет неясное до начала работы.

Своевременно эскалирует блокеры

Не застревает молча дольше дня — сигнализирует о блокере и предлагает варианты.

Ведёт задачу от проектирования до поставки

Сам определяет подход, согласует его и доводит до production без потери промежуточных шагов.

Самостоятельно находит и согласует решение

Предлагает конкретный вариант с tradeoffs, а не задаёт открытый вопрос «как делать».

Управляет своим бэклогом

Держит задачи в актуальном состоянии, сам расставляет приоритеты в рамках sprint-цели.

Инициирует улучшения без запроса

Замечает проблемы в системе и предлагает решение, не дожидаясь, пока кто-то поставит задачу.

Управляет параллельными треками

Ведёт несколько задач одновременно, не теряет контекст и не создаёт bottleneck для команды.

Принимает решения в условиях неопределённости

Двигается вперёд с неполной информацией, фиксирует допущения и готов пересмотреть решение.

Ведёт технический трек команды самостоятельно

Управляет техническим backlog, задаёт направление и держит скорость без ежедневного менеджмента.

Определяет приоритеты технического бэклога

Балансирует новые фичи, tech debt и reliability work с учётом бизнес-контекста.

Управляет рисками без постоянной эскалации

Самостоятельно оценивает и митигирует технические риски, эскалирует только существенные.

Разблокирует других без потери своего прогресса

Помогает команде двигаться, не беря на себя чужую работу целиком.

Формирует повестку самостоятельно

Сам определяет, какие проблемы важны, и инициирует работу без внешнего запроса.

Инициирует кросс-командные улучшения

Выявляет системные проблемы и организует работу нескольких команд для их решения.

Управляет стратегическими техническими рисками

Удерживает в фокусе долгосрочные риски: vendor lock-in, architectural debt, skill gap.

Строит консенсус без формальных полномочий

Добивается принятия решений через аргументацию, доверие и вовлечение ключевых stakeholders.

Работает с длинными горизонтами планирования

Видит и управляет технической стратегией на 12–24 месяца вперёд.

Оформление артефактов
Оформляет PR с описанием изменений

Описывает, что изменено, зачем и как проверить — ревьюер не должен реконструировать контекст.

Пишет понятные commit messages

Следует принятому формату, описывает суть изменения, а не процесс работы.

Описывает контекст и tradeoffs в PR

Объясняет, почему выбрано именно это решение, какие альтернативы рассматривались.

Документирует нетривиальные решения в коде

Добавляет комментарий не «что», а «почему» — там, где логика неочевидна.

Поддерживает актуальность задач в трекере

Обновляет статус, добавляет результаты обсуждений, не оставляет задачи в неопределённом состоянии.

Пишет понятные design-документы

Описывает проблему, предложение, альтернативы и риски так, чтобы получить качественный feedback.

Фиксирует решения в ADR

Записывает значимые архитектурные решения с контекстом, чтобы будущие инженеры понимали «почему».

Структурирует артефакты для ревью команды

Выбирает правильный формат: RFC, design doc, spike summary — в зависимости от сложности и аудитории.

Задаёт стандарты оформления PR и задач

Создаёт шаблоны и чеклисты, объясняет команде ценность хороших артефактов.

Контролирует quality bar артефактов команды

Возвращает на доработку PR и задачи без контекста, формирует ожидания на примерах.

Готовит executive summary для нетехнической аудитории

Переводит технические решения в бизнес-язык: риски, сроки, влияние.

Формирует культуру письменной коммуникации

Поощряет async-first подход, документирование решений и прозрачность процессов в команде.

Задаёт стандарты RFC и ADR процесса

Определяет, когда нужен RFC, как он проходит ревью и как решения фиксируются и доступны.

Пишет стратегические документы для нескольких аудиторий

Адаптирует технический документ для инженеров, менеджмента и внешних партнёров.

Обеспечивает прозрачность технических решений

Создаёт систему, в которой важные решения доступны, понятны и обоснованы для всей организации.

Формирует engineering culture через документы

Пишет principles, manifesto и best practices, которые становятся ориентиром для команд.

Техническая документация
Дополняет README для своих изменений

Обновляет инструкции по запуску, env-переменным и зависимостям при каждом изменении.

Документирует конфигурацию и параметры

Описывает назначение env-переменных, допустимые значения и поведение по умолчанию.

Пишет runbook для нового сервиса

Описывает как запустить, остановить, откатить и продиагностировать сервис в production.

Актуализирует API-документацию

Поддерживает OpenAPI spec в синхронизации с кодом при каждом изменении контракта.

Документирует operational процедуры

Описывает типовые операции: миграции, плановые рестарты, ротацию секретов.

Ведёт архитектурную документацию актуальной

Синхронизирует диаграммы и описания с реальным состоянием системы, не допускает устаревания.

Пишет onboarding guide для сервиса

Создаёт документ, позволяющий новому инженеру быстро войти в контекст и стать эффективным.

Формирует базу знаний команды

Организует документацию так, чтобы нужное было легко найти и находилось в актуальном состоянии.

Задаёт documentation standards команды

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

Контролирует полноту operational docs

Проверяет, что у каждого production сервиса есть runbook, alert descriptions и escalation path.

Формирует knowledge management подход

Выбирает инструменты и процессы для накопления и передачи знаний внутри команды.

Готовит документацию для аудита и compliance

Обеспечивает соответствие документации внешним требованиям: security review, vendor audit.

Определяет стратегию технических знаний домена

Задаёт, как знания накапливаются, структурируются и передаются между командами.

Управляет документированием межсистемных решений

Обеспечивает, чтобы cross-team архитектурные решения были зафиксированы и доступны.

Задаёт требования к ops documentation

Формирует стандарты runbook, постмортема и incident report на уровне нескольких команд.

Публикует инженерные решения вовне

Делится опытом команды через блог, конференции и open-source — создаёт внешний технический авторитет.

Коммуникация
Ясно описывает статус задачи

Сообщает, что сделано, что осталось и есть ли блокеры — без необходимости уточнять.

Задаёт уточняющие вопросы вместо предположений

Уточняет требования до начала работы, а не переделывает после завершения.

Объясняет технические решения нетехническим коллегам

Адаптирует уровень детализации к аудитории, не уходит в детали реализации там, где нужен результат.

Проводит конструктивный code review

Даёт конкретный, действенный feedback — указывает на проблему и предлагает путь решения.

Даёт и принимает feedback по работе

Говорит о проблемах прямо и без агрессии, принимает критику без защитной реакции.

Ведёт технические дискуссии к решению

Структурирует обсуждение, удерживает фокус и помогает группе прийти к конкретному выводу.

Выстраивает доверие с продуктом и смежными командами

Регулярно синхронизируется, держит партнёров в курсе, не создаёт неожиданностей.

Управляет разногласиями без эскалации

Находит компромисс или аргументированно убеждает, не втягивая менеджмент без необходимости.

Представляет позицию команды

Выступает от имени команды на кросс-командных встречах, транслирует приоритеты и ограничения.

Синхронизирует техническую повестку с менеджментом

Регулярно переводит технические приоритеты и риски в язык, понятный нетехническим руководителям.

Управляет ожиданиями стейкхолдеров

Заблаговременно сигнализирует о рисках, изменении сроков и влиянии технических решений.

Медиирует конфликты в команде

Помогает членам команды разрешать разногласия, создаёт безопасное пространство для обсуждения.

Формирует психологическую безопасность

Создаёт среду, где люди не боятся высказывать идеи, признавать ошибки и задавать вопросы.

Выступает техническим голосом домена

Представляет технические позиции на уровне директоров, партнёров и внешних аудиторий.

Ведёт кросс-командный диалог

Создаёт форумы для обмена знаниями и решения общих проблем между командами.

Строит альянсы для системных изменений

Убеждает ключевых stakeholders в необходимости изменений, формирует коалицию поддержки.

Управляет коммуникацией в условиях неопределённости

Даёт ясные ориентиры команде и партнёрам, когда стратегия ещё формируется.

Публично представляет инженерные решения

Выступает на конференциях, ведёт технический блог — формирует reputation компании в инженерном сообществе.