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

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

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

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

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

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

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

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

Оптимизирует алгоритмы обработки данных в Angular-сервисах, выбирая подходящие структуры для фильтрации и поиска. Применяет мемоизацию через Angular signals и computed() для избежания повторных вычислений в шаблонах.

Уверенно работает с RxJS в Angular: switchMap для HTTP-запросов, combineLatest для объединения потоков, takeUntilDestroyed для управления подписками. Мигрирует на Angular signals и toSignal/toObservable.

Настраивает ESLint с @angular-eslint для обеспечения качества кода. Применяет строгий TypeScript (strict mode), архитектурные правила для импортов, автоматическое форматирование через Prettier и lint-staged.

Использует паттерны GoF в контексте Angular: Observer через RxJS/signals, Strategy через DI-токены, Facade для упрощения API сервисов. Применяет Container/Presentational разделение компонентов.

Принципы ООП и SOLID Применение

Самостоятельно применяет ООП/SOLID в Angular/TypeScript: правильная инкапсуляция сервисов с DI, разделение интерфейсов для контрактов компонентов, единственная ответственность в директивах и пайпах. Понимает компромиссы между классовой архитектурой Angular и реактивным программированием с RxJS.

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

Выбирает оптимальные структуры данных для Angular-сервисов: Map для кеширования, Set для уникальных значений, нормализованные объекты для NgRx Store. Грамотно типизирует коллекции через TypeScript generics.

Применяет продвинутую типизацию: generic-сервисы, строго типизированные формы (Typed Reactive Forms), discriminated unions для состояний компонента, типизация NgRx actions и selectors.

Frontend Development · 18

Настраивает визуальное тестирование Angular-компонентов: Chromatic или Percy интеграция со Storybook, тестирование различных состояний компонентов, responsive-скриншоты для разных viewport-ов.

Реализует accessible Angular компоненты: использует CDK a11y (FocusTrap, LiveAnnouncer, ListKeyManager) для сложных patterns, реализует keyboard navigation через HostListener, настраивает angular-eslint accessibility rules. Тестирует с @angular/cdk/testing и jest-axe.

Тестирует Angular-компоненты с зависимостями: мокирование сервисов через TestBed.overrideProvider, тестирование реактивных форм, компонентов с NgRx через provideMockStore, Angular Testing Library для user-centric тестов.

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

Работает с micro-frontends в Angular: настраивает @angular-architects/module-federation для шаринга Angular компонентов, реализует dynamic module federation для runtime discovery, создает Angular Elements для cross-framework integration. Управляет shared Angular services через dependency injection.

Оптимизирует бандл Angular-приложения: code splitting через lazy-loaded routes, dynamic imports для тяжёлых библиотек, анализ через webpack-bundle-analyzer, удаление неиспользуемых Angular-модулей и провайдеров.

Создаёт переиспользуемые Angular-компоненты для дизайн-системы: кастомные form-контролы через ControlValueAccessor, composable-компоненты с content projection (ng-content), документация через Storybook.

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

Использует продвинутые CSS-техники: Container Queries для responsive-компонентов, CSS Layers для управления специфичностью, анимации через Angular Animations API, CSS-in-JS через styleUrls и inline styles.

Angular Core Применение

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

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

Оптимизирует Core Web Vitals в Angular: lazy loading через @defer блоки для улучшения LCP, trackBy в @for для стабильного CLS, ChangeDetectionStrategy.OnPush для снижения INP, NgOptimizedImage для изображений.

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

Реализует продвинутые паттерны получения данных: кеширование через shareReplay, отмена запросов через switchMap, пагинация и бесконечный скролл, параллельные запросы через forkJoin, retry-стратегии.

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

Настраивает продвинутые PWA-функции в Angular: стратегии кеширования в ngsw-config.json (freshness vs performance), push-уведомления через SwPush, фоновая синхронизация данных, App Shell для быстрого старта.

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

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

Настраивает Angular Universal для SSR: серверные маршруты, TransferState для избежания дублирования запросов, обработка browser-only API через isPlatformBrowser, prerendering статических страниц через ng build --prerender.

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

Применяет NgRx для управления состоянием: Store для глобального состояния, createFeature для feature-state, Effects для side effects. Мигрирует на NgRx SignalStore для более простых случаев.

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

Настраивает Tailwind CSS для Angular-проекта: кастомная тема в tailwind.config, интеграция с Angular Material через @apply, создание переиспользуемых утилитарных классов, purge-конфигурация для production.

Настраивает сборку Angular-приложения: выбор между esbuild и webpack builder, кастомизация angular.json для оптимизации, настройка environment-файлов, source maps, asset management и стилевые препроцессоры.

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

Применяет современные Web API в Angular-сервисах: IntersectionObserver для lazy-loading компонентов, ResizeObserver для адаптивности, Clipboard API, Web Storage с типизацией через generic-сервисы.

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

Создаёт Angular Elements для использования вне Angular: упаковка standalone-компонентов как Custom Elements, передача данных через attributes/properties, обработка событий через CustomEvent.

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

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

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

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

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

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

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