Роли · Frontend Developer (React) · Middle

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

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

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

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

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

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

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

Оптимизирует алгоритмы фильтрации и сортировки данных в React-приложениях с помощью useMemo и useCallback. Понимает алгоритм Virtual DOM diffing, применяет мемоизацию для предотвращения лишних пересчётов в компонентах с TanStack Query.

Управляет сложными асинхронными потоками в React: параллельные запросы через Promise.all, зависимые запросы в TanStack Query, оптимистичные обновления с мутациями. Использует Suspense для декларативной загрузки данных и React.lazy для code splitting.

Настраивает ESLint с eslint-plugin-react-hooks и @typescript-eslint для обеспечения качества React-кода. Пишет строго типизированные компоненты и хуки, применяет strict mode TypeScript, настраивает husky + lint-staged для pre-commit проверок.

Владеет продвинутыми React-паттернами: compound components, render props, HOC, custom hooks для переиспользования логики. Применяет паттерн provider через React Context и Zustand для управления состоянием, использует TypeScript generics для типобезопасных компонентов.

Структуры данных Применение

Выбирает оптимальные структуры данных для нормализации state в Zustand/Jotai: Map для быстрого доступа по ключу, Set для уникальных коллекций. Проектирует форму стейта для эффективного обновления React-компонентов без лишних ре-рендеров.

Создаёт строго типизированные React-компоненты с generics, discriminated unions для props, условными типами. Типизирует хуки, контексты Zustand/Jotai, ответы TanStack Query. Использует zod для runtime-валидации на границе API.

Frontend Development · 19

Настраивает визуальное регрессионное тестирование для React-компонентов: интеграция Storybook с Chromatic для автоматических скриншот-сравнений, Playwright visual testing для E2E-сценариев. Покрывает ключевые состояния: responsive breakpoints, dark mode, loading states.

Реализует accessible React-компоненты: использует React Aria (Adobe) или Radix UI для доступных примитивов, управляет фокусом через useRef и focus management, реализует keyboard navigation для custom components. Тестирует с axe-core и проверяет через screen reader (VoiceOver/NVDA).

Создаёт комплексные тесты React-компонентов: мокирование хуков и контекстов, тестирование асинхронных операций с waitFor, интеграционные тесты с MSW для мокирования API. Настраивает coverage reports, тестирует accessibility через jest-axe.

Микрофронтенды Применение

Работает с micro-frontends в React: настраивает Webpack Module Federation для шаринга компонентов между приложениями, реализует runtime загрузку remote modules, управляет shared dependencies (React, React DOM) для предотвращения дублирования. Интегрирует micro-frontend в host application.

Оптимизирует бандл React-приложения: настраивает chunk splitting в Vite для оптимального кеширования, реализует route-based code splitting в Next.js, tree-shaking для UI-библиотек. Настраивает bundle size limits в CI, анализирует и устраняет дублирование зависимостей.

Создаёт переиспользуемые React-компоненты для дизайн-системы на базе Radix UI primitives: compound components, полиморфные компоненты через asChild. Документирует в Storybook с интерактивными примерами, типизирует props через TypeScript.

Современный CSS Применение

Использует продвинутые CSS-возможности в React-компонентах: container queries, :has(), @layer для управления специфичностью, CSS logical properties. Настраивает CSS Modules с типизацией через typed-css-modules, анимации через Framer Motion.

Core Web Vitals Применение

Оптимизирует Core Web Vitals в React/Next.js приложениях: LCP через приоритизацию загрузки и Server Components, INP через useTransition и дебаунс обработчиков, CLS через резервирование места для динамического контента и font display swap.

CSS-in-JS Применение

Реализует сложные React UI-компоненты с styled-components или Emotion: динамические темы, адаптивные стили. Оптимизирует рендеринг, избегая лишних пересчётов стилей. Пишет тесты для styled-компонентов, применяет CSS-in-JS паттерны для state-driven стилизации.

Data Fetching Применение

Реализует продвинутые паттерны data fetching в React: мутации с оптимистичными обновлениями в TanStack Query, infinite scroll через useInfiniteQuery, параллельные и зависимые запросы. Настраивает глобальный error handling и retry-стратегии.

Next.js Применение

Самостоятельно реализует сложные UI-компоненты с Next.js. Оптимизирует производительность рендеринга. Пишет тесты. Применяет инструменты для state management.

Progressive Web Apps Применение

Реализует PWA-функциональность в React/Next.js приложениях: стратегии кеширования (cache-first, network-first) через Workbox, push-уведомления, offline fallback. Настраивает precaching критических ресурсов и runtime caching для API-ответов.

React Core Применение

Реализует сложные UI-компоненты с продвинутыми паттернами React, такими как compound components и render props. Оптимизирует рендеринг с помощью useMemo, useCallback и React.memo. Пишет всесторонние юнит- и интеграционные тесты с React Testing Library.

SSR/SSG/ISR паттерны Применение

Реализует продвинутые рендеринг-паттерны в Next.js App Router: streaming SSR с Suspense, ISR с revalidate, параллельные и перехваченные маршруты. Оптимизирует TTFB через Server Components, настраивает кеширование данных и полных страниц.

State Management Применение

Проектирует state management в React-приложениях: разделение серверного (TanStack Query) и клиентского (Zustand/Jotai) состояния, оптимизация ре-рендеров через selectors и атомарный стейт. Реализует derived state, middleware в Zustand для логирования и персистентности.

Tailwind CSS Применение

Создаёт кастомную конфигурацию Tailwind CSS для React-проекта: расширяет тему, создаёт плагины, использует @apply для переиспользуемых стилей. Интегрирует с Radix UI и Headless UI, настраивает purge для оптимального bundle size с Vite.

Настраивает продвинутую конфигурацию Vite для React: кастомные плагины, оптимизация зависимостей через optimizeDeps, настройка proxy для API. Конфигурирует Vitest как test runner, env-переменные через .env файлы, настраивает build для production.

Web APIs Применение

Интегрирует продвинутые Web API в React-приложения: IntersectionObserver для lazy loading через хуки, ResizeObserver для адаптивных компонентов, History API для кастомной навигации. Создаёт переиспользуемые React-хуки для типичных Web API паттернов.

Web Components Применение

Создаёт React-обёртки для Web Components с корректной типизацией TypeScript: маппинг свойств, форвардинг событий, поддержка ref. Реализует двустороннюю интеграцию между React-компонентами и Custom Elements для использования в других фреймворках.

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

Основы сетей Применение

Разбирается в сетевых аспектах React/Next.js приложений: настройка CORS для API routes, HTTP/2 и Server Push для оптимизации загрузки, CDN-кеширование статики. Оптимизирует сетевые запросы: compression, resource hints (preload, prefetch, preconnect).

Безопасность · 1

Применяет OWASP-рекомендации в React/Next.js приложениях: настройка security headers (CSP, HSTS, X-Frame-Options) через next.config.js, безопасная аутентификация через NextAuth.js, защита API routes от injection. Проводит security review кода, использует npm audit.

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

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

Документирование APIИндексирование БДИнтеграционное тестированиеМногопоточное программированиеОсновы System DesignПрактики безопасного кодаПринципы ООП и SOLIDСтруктурированное логированиеТестирование доступностиAWSChatGPT / ClaudeCode ReviewCursor IDEDockerE2E тестированиеGit AdvancedGitHub Actions / GitLab CIGitHub CopilotGraphQL DesignKubernetes CoreOpenTelemetryPerformance BudgetsPostgreSQLPrometheus и GrafanaPrompt Engineering для кодаRedisREST API DesignTerraformUnit-тестирование

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

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

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

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