Выберите текущую позицию
Укажите роль и уровень — система покажет путь развития, навыки и gap-анализ.
Путь развития
Junior
0-2 года
Ответственность: Выполнение задач под руководством старших коллег. Изучение кодовой базы, стандартов и процессов команды. Написание кода по спецификациям, исправление простых багов, написание тестов.
Ключевые навыки:
Middle
2-5 лет
Ответственность: Самостоятельная разработка фич от декомпозиции до деплоя. Участие в code review. Оптимизация производительности. Менторинг junior-разработчиков. Участие в архитектурных обсуждениях.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Senior
5-8 лет
Ответственность: Проектирование архитектуры компонентов и сервисов. Решение сложных технических проблем. Ведение технического долга. Code review как gatekeeper качества. Менторинг middle-разработчиков. Выбор технологий для новых задач.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Lead / Staff
7-12 лет
Ответственность: Техническое лидерство команды или направления. Проектирование системной архитектуры. Координация с другими командами. Формирование стандартов и best practices. Участие в найме. Планирование технического roadmap.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Principal
10+ лет
Ответственность: Техническая стратегия на уровне компании или домена. Кросс-организационное влияние. Решение системных проблем бизнеса через технологии. Менторинг lead-инженеров. Публичное представление компании.
Ключевые навыки:
- Самостоятельно реализовал 3+ проекта
- Провёл успешные код-ревью
- Участвовал в разрешении production инцидентов
Gap-анализ: навыки для развития
Для перехода на следующий уровень необходимо развить:
Самостоятельно реализует сложные UI-компоненты с Angular Core. Оптимизирует производительность рендеринга. Пишет тесты. Применяет инструменты для state management.
Оптимизирует Core Web Vitals в Angular: lazy loading через @defer блоки для улучшения LCP, trackBy в @for для стабильного CLS, ChangeDetectionStrategy.OnPush для снижения INP, NgOptimizedImage для изображений.
Реализует продвинутые паттерны получения данных: кеширование через shareReplay, отмена запросов через switchMap, пагинация и бесконечный скролл, параллельные запросы через forkJoin, retry-стратегии.
Настраивает продвинутые PWA-функции в Angular: стратегии кеширования в ngsw-config.json (freshness vs performance), push-уведомления через SwPush, фоновая синхронизация данных, App Shell для быстрого старта.
Самостоятельно реализует сложные UI-компоненты с RxJS и реактивное программирование. Оптимизирует производительность рендеринга. Пишет тесты. Применяет инструменты для state management.
Настраивает Angular Universal для SSR: серверные маршруты, TransferState для избежания дублирования запросов, обработка browser-only API через isPlatformBrowser, prerendering статических страниц через ng build --prerender.
Применяет NgRx для управления состоянием: Store для глобального состояния, createFeature для feature-state, Effects для side effects. Мигрирует на NgRx SignalStore для более простых случаев.
Настраивает Tailwind CSS для Angular-проекта: кастомная тема в tailwind.config, интеграция с Angular Material через @apply, создание переиспользуемых утилитарных классов, purge-конфигурация для production.
Настраивает сборку Angular-приложения: выбор между esbuild и webpack builder, кастомизация angular.json для оптимизации, настройка environment-файлов, source maps, asset management и стилевые препроцессоры.
Применяет современные Web API в Angular-сервисах: IntersectionObserver для lazy-loading компонентов, ResizeObserver для адаптивности, Clipboard API, Web Storage с типизацией через generic-сервисы.
Создаёт Angular Elements для использования вне Angular: упаковка standalone-компонентов как Custom Elements, передача данных через attributes/properties, обработка событий через CustomEvent.
Оптимизирует алгоритмы обработки данных в Angular-сервисах, выбирая подходящие структуры для фильтрации и поиска. Применяет мемоизацию через Angular signals и computed() для избежания повторных вычислений в шаблонах.
Уверенно работает с RxJS в Angular: switchMap для HTTP-запросов, combineLatest для объединения потоков, takeUntilDestroyed для управления подписками. Мигрирует на Angular signals и toSignal/toObservable.
Настраивает визуальное тестирование 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.
Настраивает ESLint с @angular-eslint для обеспечения качества кода. Применяет строгий TypeScript (strict mode), архитектурные правила для импортов, автоматическое форматирование через Prettier и lint-staged.
Тестирует 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-модулей и провайдеров.
Использует паттерны GoF в контексте Angular: Observer через RxJS/signals, Strategy через DI-токены, Facade для упрощения API сервисов. Применяет Container/Presentational разделение компонентов.
Самостоятельно применяет ООП/SOLID в Angular/TypeScript: правильная инкапсуляция сервисов с DI, разделение интерфейсов для контрактов компонентов, единственная ответственность в директивах и пайпах. Понимает компромиссы между классовой архитектурой Angular и реактивным программированием с RxJS.
Создаёт переиспользуемые Angular-компоненты для дизайн-системы: кастомные form-контролы через ControlValueAccessor, composable-компоненты с content projection (ng-content), документация через Storybook.
Использует продвинутые CSS-техники: Container Queries для responsive-компонентов, CSS Layers для управления специфичностью, анимации через Angular Animations API, CSS-in-JS через styleUrls и inline styles.
Выбирает оптимальные структуры данных для Angular-сервисов: Map для кеширования, Set для уникальных значений, нормализованные объекты для NgRx Store. Грамотно типизирует коллекции через TypeScript generics.
Применяет продвинутую типизацию: generic-сервисы, строго типизированные формы (Typed Reactive Forms), discriminated unions для состояний компонента, типизация NgRx actions и selectors.