Самостоятельно применяет алгоритмическое мышление по всему стеку: выбирает эффективные алгоритмы запросов на бэкенде, понимает алгоритмы виртуального скроллинга и пагинации на фронтенде, оценивает компромиссы обработки данных между клиентом и сервером. Анализирует сквозную сложность реализаций фич.
Роли · Fullstack Developer · Middle
Что должен уметь Middle }
23 ключевых навыков, всего 65. Ожидания по каждому навыку и что меняется на следующем уровне.
На этой странице — что ожидается от Middle }, навык за навыком. Ключевые навыки оценивают руководитель и коллеги в цикле ревью; остальные учитываются только в самооценке. Основные области: Основы программирования, Frontend Development, Базы данных.
Ключевые навыки для Middle
Сгруппированы по областям. Метка справа — ожидаемая глубина: Осведомлённость, Применение, Продвинутый или Эксперт.
Основы программирования · 7
Самостоятельно применяет асинхронное программирование по всему стеку: серверная async-обработка запросов, клиентская async-загрузка данных, WebSocket/SSE для обновлений реального времени. Понимает компромиссы между различными async-паттернами на фронтенде и бэкенде.
Самостоятельно применяет практики качества кода на фронтенде и бэкенде. Пишет консистентный код с общими определениями типов и чёткими границами API. Понимает компромиссы между DRY-переиспользованием кода и независимостью деплоя. Ревьюит full-stack фичи на правильное пробрасывание ошибок и консистентность валидации данных.
Самостоятельно применяет паттерны проектирования по всему стеку: repository для бэкенд-доступа к данным, стратегия для взаимозаменяемых реализаций сервисов, observer для реактивности фронтенда, адаптер для слоёв интеграции API. Обосновывает компромиссы паттернов для целостности full-stack архитектуры.
Самостоятельно применяет ООП/SOLID на фронтенде и бэкенде: правильные абстракции сервисов, разделяемые между слоями, контракты API на основе интерфейсов, единственная ответственность и в UI-компонентах, и в серверных обработчиках. Понимает компромиссы между ООП и функциональными паттернами по всему стеку.
Самостоятельно выбирает подходящие структуры данных по всему стеку: нормализованные схемы БД, DTO для API-ответов, клиентские деревья состояния для UI. Понимает компромиссы между выбором форматов данных для эффективной сериализации между фронтендом и бэкендом.
Самостоятельно применяет типобезопасность на фронтенде и бэкенде — строгий режим TypeScript для общих определений типов, типы контрактов API с tRPC/GraphQL codegen и сквозной типобезопасный поток данных. Понимает компромиссы между валидацией в runtime и гарантиями на этапе компиляции на границах системы. Применяет типобезопасные паттерны при ревью кода.
Frontend Development · 14
Обеспечивает accessibility на обеих сторонах: реализует server-side rendered accessible HTML с SSR frameworks, настраивает API responses для accessibility (alt text в image API, structured error messages). Тестирует с axe-core и проверяет keyboard navigation.
Самостоятельно реализует сложные UI-компоненты с Компонентное тестирование. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Работает с micro-frontends в fullstack контексте: реализует BFF layer для каждого micro-frontend, настраивает API composition для агрегации данных, применяет Module Federation для фронтенд интеграции. Обеспечивает end-to-end type safety через shared TypeScript types между frontend и backend.
Самостоятельно реализует сложные UI-компоненты с Оптимизация бандла. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с Разработка дизайн-систем. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с Современный CSS. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с Core Web Vitals. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Реализует паттерны загрузки данных с React Query/SWR на фронтенде и REST/GraphQL API на бэкенде. Оптимизирует кэширование, дедупликацию и состояния загрузки по всему стеку.
Самостоятельно реализует сложные UI-компоненты с Next.js. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с React Core. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с SSR/SSG/ISR паттерны. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с State Management. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с Tailwind CSS. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Самостоятельно реализует сложные UI-компоненты с Vite и современные бандлеры. Оптимизирует производительность рендеринга. Пишет тесты. Применяет для state management.
Базы данных · 1
Анализирует медленные запросы через EXPLAIN. Устраняет N+1 проблемы в ORM (eager loading, select_related). Оптимизирует JOIN-ы (порядок, типы). Использует оконные функции (ROW_NUMBER, LAG/LEAD). Понимает разницу между correlated и non-correlated subqueries.
Облако и инфраструктура · 1
Применяет знания сетей в fullstack-разработке: настройка CORS для API, SSL/TLS сертификаты, HTTP/2 мультиплексирование. Понимает CDN-архитектуру для статики, DNS-конфигурацию для доменов и диагностирует проблемы латентности между фронтендом и бэкендом.
Дополнительные навыки
Команда их не оценивает, но они входят в самооценку и план развития.
Что меняется на Senior
65 навыков получают более высокое ожидание или становятся ключевыми при переходе с Middle на Senior. Сначала самые большие скачки.
- Индексирование БД: Применение → Продвинутый · становится ключевым
- Интеграционное тестирование: Применение → Продвинутый · становится ключевым
- Миграции БД: Применение → Продвинутый · становится ключевым
- Основы System Design: Применение → Продвинутый · становится ключевым
- Проектирование схем данных: Применение → Продвинутый · становится ключевым
- Проектирование WebSocket API: Применение → Продвинутый · становится ключевым
- Стратегии версионирования API: Применение → Продвинутый · становится ключевым
- Структурированное логирование: Применение → Продвинутый · становится ключевым
- AWS: Применение → Продвинутый · становится ключевым
- Code Review: Применение → Продвинутый · становится ключевым
} в открытой матрице компетенций: 65 навыков на 5 уровнях. Матрица бесплатна для специалистов и останется бесплатной.