{
  "format": "sf-skill-matrix",
  "version": 1,
  "name": "Матрица навыков DevOps engineer",
  "description": "Публичный пример ролевой матрицы для DevOps-инженеров, отвечающих за доставку, надежность и эксплуатацию платформы.",
  "levels": [
    {
      "name": "Джуниор",
      "description": "Поддерживает существующую инфраструктуру и deployment-потоки, действует по runbook и безопасно выполняет типовые изменения."
    },
    {
      "name": "Мидл",
      "description": "Самостоятельно ведет инфраструктурные изменения среднего размера, повышает надежность сервиса и разбирает инциденты."
    },
    {
      "name": "Сеньор",
      "description": "Формирует эксплуатационные практики, проектирует устойчивую платформу и масштабирует инженерные стандарты на несколько команд."
    },
    {
      "name": "TechLead",
      "description": "Ведет техническое направление platform/devops-команды, удерживает качество delivery и помогает инженерам двигаться к предсказуемой эксплуатации."
    },
    {
      "name": "Principal",
      "description": "Определяет платформенную стратегию компании, связывает надежность, скорость поставки и стоимость инфраструктуры с бизнес-целями."
    }
  ],
  "groups": [
    {
      "name": "Платформа и delivery",
      "rows": [
        {
          "name": "Linux, networking и cloud foundations",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Уверенно работает в Linux",
                  "info": "Использует systemd, journalctl, ss, top, lsof и базовые сетевые утилиты для диагностики типовых проблем."
                },
                {
                  "name": "Понимает базовые сетевые принципы",
                  "info": "Различает DNS, HTTP/TLS, routing, firewall rules и понимает, где искать проблему при отказе соединения."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Самостоятельно разбирает инфраструктурные инциденты",
                  "info": "Диагностирует проблемы на уровне ОС, сети, ресурсов и runtime, не ограничиваясь поверхностными симптомами."
                },
                {
                  "name": "Работает с облачной инфраструктурой как с системой",
                  "info": "Понимает VPC, subnets, load balancers, managed services и ограничения конкретного cloud-провайдера."
                },
                {
                  "name": "Проводит безопасные изменения окружения",
                  "info": "Планирует rollout, проверяет blast radius и заранее готовит rollback для host и network-изменений."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Проектирует устойчивую инфраструктурную топологию",
                  "info": "Принимает решения по сегментации сети, доступности зон, внешним точкам входа и зависимостям сервисов."
                },
                {
                  "name": "Определяет стандарты диагностики и эксплуатации",
                  "info": "Создает понятные troubleshooting-паттерны, runbooks и требования к операционной готовности сервисов."
                },
                {
                  "name": "Предотвращает повторяющиеся operational failure modes",
                  "info": "Ищет системные причины инцидентов и устраняет классы проблем, а не только отдельные симптомы."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Задает платформенные правила для окружений",
                  "info": "Определяет стандарты dev/stage/prod, сетевую изоляцию, naming conventions и требования к доступам."
                },
                {
                  "name": "Принимает решения по компромиссам надежности и стоимости",
                  "info": "Балансирует избыточность, latency, operational overhead и cloud cost под реальные требования бизнеса."
                },
                {
                  "name": "Направляет команду в сложных инцидентах",
                  "info": "Организует диагностику, делегирует потоки работ и удерживает фокус на восстановлении сервиса."
                },
                {
                  "name": "Выравнивает практики эксплуатации между командами",
                  "info": "Убирает ad-hoc решения и добивается того, чтобы разные команды работали по совместимым operational patterns."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Определяет cloud и platform strategy компании",
                  "info": "Выбирает базовые инфраструктурные подходы с учетом масштаба бизнеса, зрелости команды и рисков lock-in."
                },
                {
                  "name": "Формирует стандарты platform architecture для нескольких доменов",
                  "info": "Устанавливает принципы network segmentation, tenancy, ingress/egress и shared platform services."
                },
                {
                  "name": "Ведет долгосрочную программу повышения надежности",
                  "info": "Связывает архитектурные инициативы, инцидентную статистику и бизнес-критичность в единую roadmap."
                },
                {
                  "name": "Определяет модель platform ownership",
                  "info": "Разделяет зоны ответственности между платформенной командой и продуктовой разработкой без серых зон."
                },
                {
                  "name": "Влияет на инфраструктурные решения через системную аргументацию",
                  "info": "Добивается принятия правильных компромиссов на уровне CTO, архитекторов и нескольких инженерных команд."
                }
              ]
            }
          ]
        },
        {
          "name": "CI/CD и release engineering",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Поддерживает существующие pipelines",
                  "info": "Понимает основные этапы build, test, artifact publish и причины типовых падений delivery flow."
                },
                {
                  "name": "Соблюдает базовую release-дисциплину",
                  "info": "Работает через reviewed changes, не деплоит вручную обходными путями и проверяет результат после релиза."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Ускоряет и стабилизирует pipeline",
                  "info": "Добавляет caching, parallel steps, environment checks и уменьшает flaky stages без потери качества."
                },
                {
                  "name": "Строит безопасный rollout и rollback",
                  "info": "Использует immutable artifacts, health checks и механизмы отката вместо ручного исправления после релиза."
                },
                {
                  "name": "Автоматизирует release-проверки",
                  "info": "Встраивает smoke checks, policy gates и валидацию конфигурации прямо в delivery-процесс."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Проектирует стандарты поставки для нескольких сервисов",
                  "info": "Выбирает подходы к trunk-based development, branch strategy, promotion flow и release cadence."
                },
                {
                  "name": "Уменьшает release risk на уровне платформы",
                  "info": "Встраивает progressive delivery, feature flags и обязательные preflight checks для критичных сервисов."
                },
                {
                  "name": "Формирует метрики качества delivery",
                  "info": "Следит за lead time, change failure rate, MTTR и использует их для реального улучшения процесса."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Задает team-wide подход к CI/CD",
                  "info": "Определяет, какие этапы обязательны, где допустима гибкость и как команда доказывает готовность к релизу."
                },
                {
                  "name": "Снимает конфликт между скоростью и надежностью поставки",
                  "info": "Находит практический баланс между количеством проверок, временем pipeline и реальным риском изменений."
                },
                {
                  "name": "Управляет эволюцией deployment-платформы",
                  "info": "Планирует миграции пайплайнов, общих шаблонов и runner-инфраструктуры без хаотичных переходов."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Определяет delivery model компании",
                  "info": "Формирует единые принципы сборки, promotion, release approvals и change governance для разных доменов."
                },
                {
                  "name": "Выбирает стратегию платформенных инструментов",
                  "info": "Оценивает CI/CD стек по критериям надежности, стоимости, vendor lock-in и удобства масштабирования."
                },
                {
                  "name": "Стандартизирует инженерный feedback loop",
                  "info": "Строит систему, в которой разработчик быстро получает сигнал о качестве кода, безопасности и готовности к релизу."
                },
                {
                  "name": "Связывает delivery-практики с бизнес-ритмом",
                  "info": "Подстраивает release-модель под разные типы продуктов, регуляторные ограничения и SLA."
                }
              ]
            }
          ]
        },
        {
          "name": "Infrastructure as Code и automation",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Меняет инфраструктуру через код",
                  "info": "Вносит изменения в Terraform, Ansible или аналогичный IaC-инструмент без ручного drift в окружениях."
                },
                {
                  "name": "Понимает state и порядок применения",
                  "info": "Аккуратно работает с планом изменений, зависимостями ресурсов и review перед apply."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Создает переиспользуемые IaC-модули",
                  "info": "Проектирует разумные variables, outputs и boundaries так, чтобы модули были полезны, а не абстрактны ради абстракции."
                },
                {
                  "name": "Контролирует drift и безопасность изменений",
                  "info": "Настраивает policy checks, linting, plan review и защищенный способ применения инфраструктурных изменений."
                },
                {
                  "name": "Автоматизирует рутинные operational задачи",
                  "info": "Убирает повторяемые ручные действия через скрипты, jobs и self-service workflows с понятными guardrails."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Проектирует структуру IaC для платформы",
                  "info": "Разделяет environments, states, ownership и shared modules так, чтобы система оставалась управляемой при росте."
                },
                {
                  "name": "Задает стандарты инфраструктурного review",
                  "info": "Определяет, как команда проверяет blast radius, security implications и migration safety для IaC-изменений."
                },
                {
                  "name": "Строит надежную automation platform",
                  "info": "Создает self-service сценарии, которые ускоряют команды и не ломают контроль доступа или auditability."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Определяет правила эволюции IaC-кода",
                  "info": "Устанавливает требования к модульности, versioning, ownership и миграциям между подходами и инструментами."
                },
                {
                  "name": "Принимает решения по платформенной автоматизации",
                  "info": "Выбирает, что должно быть централизовано, а что остается под контролем продуктовых команд."
                },
                {
                  "name": "Удерживает баланс между гибкостью и guardrails",
                  "info": "Не допускает, чтобы self-service превращался либо в хаос, либо в непроходимую бюрократию."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Формирует стратегию platform automation",
                  "info": "Определяет, как компания автоматизирует provisioning, policy enforcement и операционное самообслуживание."
                },
                {
                  "name": "Выбирает целевую operating model для IaC",
                  "info": "Решает, где нужен centralized platform engineering, а где разумнее federated ownership с едиными стандартами."
                },
                {
                  "name": "Определяет долгосрочный путь снижения operational toil",
                  "info": "Планирует инициативы, которые уменьшают ручной труд и одновременно улучшают контроль качества изменений."
                },
                {
                  "name": "Синхронизирует automation-стандарты между несколькими направлениями",
                  "info": "Добивается совместимых процессов у разных команд, не навязывая одинаковые инструменты без необходимости."
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "name": "Надежность и безопасность",
      "rows": [
        {
          "name": "Containers и orchestration",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Собирает и запускает containerized workloads",
                  "info": "Понимает Dockerfile, image layers, runtime env vars и базовые orchestration-объекты."
                },
                {
                  "name": "Следует базовым правилам контейнерной безопасности",
                  "info": "Избегает лишних привилегий, контролирует зависимости образа и понимает, зачем нужны pinned versions."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Эксплуатирует сервисы в orchestration-среде",
                  "info": "Настраивает probes, resource limits, rollout strategy и service discovery под production-нагрузку."
                },
                {
                  "name": "Диагностирует проблемы контейнерной платформы",
                  "info": "Разбирает scheduling issues, crash loops, image pull failures и сетевые проблемы между workload-ами."
                },
                {
                  "name": "Управляет конфигурацией и секретами",
                  "info": "Разделяет config, secret и image concerns так, чтобы релизы были воспроизводимыми и безопасными."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Проектирует стандарты оркестрации для команд",
                  "info": "Определяет подходы к namespaces, workload isolation, autoscaling и управлению platform add-ons."
                },
                {
                  "name": "Управляет надежностью cluster-level компонентов",
                  "info": "Предотвращает деградации control plane, ingress, DNS и storage-зависимостей."
                },
                {
                  "name": "Задает best practices для образов и runtime",
                  "info": "Вводит минимальные образы, scanning, patch cadence и требования к запуску процессов в контейнере."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Определяет platform patterns для orchestrated workloads",
                  "info": "Задает единые шаблоны деплоя, сетевой политики и runtime-конфигурации для разных типов сервисов."
                },
                {
                  "name": "Принимает решения по границам cluster responsibility",
                  "info": "Определяет, какие части Kubernetes/nomad-платформы управляются централизованно, а какие делегируются командам."
                },
                {
                  "name": "Снижает риск platform-wide сбоев",
                  "info": "Проводит изменения так, чтобы проблемы в shared cluster не превращались в массовый outage."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Формирует стратегию оркестрации и runtime-платформы",
                  "info": "Выбирает долгосрочный стек для контейнеров и orchestrator-ов под масштаб компании и профиль ее нагрузки."
                },
                {
                  "name": "Определяет multi-cluster и tenancy model",
                  "info": "Принимает решения о разделении окружений, безопасности арендаторов и управлении shared platform capacity."
                },
                {
                  "name": "Выбирает эволюцию runtime security и platform controls",
                  "info": "Связывает sandboxing, supply chain security и policy enforcement с реальными продуктами компании."
                },
                {
                  "name": "Создает платформу, которая масштабируется организационно",
                  "info": "Строит operating model, в которой рост числа сервисов и команд не приводит к взрывному росту сложности."
                }
              ]
            }
          ]
        },
        {
          "name": "Observability и incident response",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Читает логи, метрики и алерты",
                  "info": "Ориентируется в dashboards, умеет подтвердить факт деградации и эскалировать проблему по runbook."
                },
                {
                  "name": "Следует базовым operational procedures",
                  "info": "Корректно обновляет статус инцидента, не скрывает неизвестность и фиксирует сделанные шаги."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Диагностирует инциденты по telemetry",
                  "info": "Сопоставляет логи, метрики, traces и события релизов для поиска root cause, а не только симптомов."
                },
                {
                  "name": "Настраивает качественные сигналы мониторинга",
                  "info": "Убирает шумные алерты, добавляет meaningful dashboards и строит наблюдаемость вокруг пользовательского опыта."
                },
                {
                  "name": "Участвует в postmortem с упором на системные причины",
                  "info": "Фиксирует корректные corrective actions и помогает команде не повторять один и тот же класс ошибок."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Формирует observability-подход для платформы",
                  "info": "Определяет SLI/SLO, требования к логированию, трейсингу и структуре operational dashboards."
                },
                {
                  "name": "Ведет сложные инциденты до реального устранения причин",
                  "info": "Управляет диагностикой в условиях неопределенности и доводит решения до устойчивого operational change."
                },
                {
                  "name": "Повышает качество incident response",
                  "info": "Вводит понятные escalation paths, on-call практики и критерии завершения инцидента."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Определяет стандарты надежности и on-call",
                  "info": "Устанавливает, что считается приемлемым сигналом, как работает дежурство и какие инциденты требуют обязательного разбора."
                },
                {
                  "name": "Соединяет observability с delivery и архитектурой",
                  "info": "Добивается того, чтобы telemetry влияла на решения по релизам, capacity и инженерному roadmap."
                },
                {
                  "name": "Управляет эволюцией incident culture",
                  "info": "Строит среду без blame-подхода, где качество postmortem оценивается по устранению системных причин."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Формирует reliability program на уровне компании",
                  "info": "Связывает SLO, error budget, приоритизацию платформенных инвестиций и критичность бизнес-сервисов."
                },
                {
                  "name": "Выбирает целевую модель observability stack",
                  "info": "Оценивает инструменты telemetry по масштабируемости, стоимости хранения и аналитической ценности сигналов."
                },
                {
                  "name": "Управляет системными рисками через инцидентные данные",
                  "info": "Использует кластеры инцидентов и failure patterns для архитектурных решений, а не только для реактивных исправлений."
                },
                {
                  "name": "Определяет культуру operational excellence",
                  "info": "Делает надежность частью инженерной стратегии, а не побочным требованием после релиза."
                }
              ]
            }
          ]
        },
        {
          "name": "Security, access и cost governance",
          "cells": [
            {
              "level": 1,
              "level_name": "Джуниор",
              "tasks": [
                {
                  "name": "Следует secure defaults в инфраструктуре",
                  "info": "Аккуратно обращается с секретами, не расширяет доступы без причины и применяет базовые hardening-практики."
                },
                {
                  "name": "Понимает ценность cost-awareness",
                  "info": "Замечает очевидный waste в ресурсах и не создает лишние постоянно работающие окружения без необходимости."
                }
              ]
            },
            {
              "level": 2,
              "level_name": "Мидл",
              "tasks": [
                {
                  "name": "Снижает операционные security-риски",
                  "info": "Настраивает least privilege, rotation, image scanning и ограничение exposed surfaces в platform workflows."
                },
                {
                  "name": "Контролирует бюджет инфраструктуры через технические решения",
                  "info": "Находит неиспользуемые ресурсы, корректирует sizing и выбирает cost-effective managed services."
                },
                {
                  "name": "Строит проверяемые access-процессы",
                  "info": "Делает выдачу и отзыв доступов прозрачными, воспроизводимыми и пригодными для аудита."
                }
              ]
            },
            {
              "level": 3,
              "level_name": "Сеньор",
              "tasks": [
                {
                  "name": "Встраивает security в platform delivery",
                  "info": "Делает policy enforcement, secrets management и supply chain controls частью стандартного пути поставки."
                },
                {
                  "name": "Управляет cost-performance tradeoff",
                  "info": "Принимает решения по capacity, storage tiers и managed services исходя из пользы для продукта, а не интуиции."
                },
                {
                  "name": "Определяет платформенные правила доступа",
                  "info": "Формирует RBAC-модель, break-glass процесс и требования к аудиту для критичных инфраструктурных действий."
                }
              ]
            },
            {
              "level": 4,
              "level_name": "TechLead",
              "tasks": [
                {
                  "name": "Принимает решения по security posture платформы",
                  "info": "Балансирует контроль, скорость поставки и реальную угроз-модель без формальной безопасности ради безопасности."
                },
                {
                  "name": "Управляет инфраструктурными расходами как частью engineering strategy",
                  "info": "Встраивает cost review в архитектурные решения, capacity planning и процессы команды."
                },
                {
                  "name": "Выравнивает governance между несколькими командами",
                  "info": "Добивается того, чтобы правила доступа, бюджетные ограничения и security controls были совместимыми и выполнимыми."
                }
              ]
            },
            {
              "level": 5,
              "level_name": "Principal",
              "tasks": [
                {
                  "name": "Формирует стратегию platform security",
                  "info": "Определяет долгосрочную модель secrets, identity, supply chain и policy enforcement для всей инженерной организации."
                },
                {
                  "name": "Определяет operating model cost governance",
                  "info": "Связывает FinOps-практики, архитектурные стандарты и ownership расходов между платформой и продуктами."
                },
                {
                  "name": "Принимает ключевые решения по риску и контролям",
                  "info": "Определяет, какие ограничения обязательны на уровне компании, а где допустим локальный выбор команды."
                },
                {
                  "name": "Соединяет безопасность, надежность и стоимость в одну стратегию",
                  "info": "Строит platform vision, в которой эти три аспекта не конфликтуют хаотично, а управляются как единая система."
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
