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

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

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

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

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

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

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

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

Оптимизирует алгоритмы обработки списков и деревьев в Svelte-приложениях, применяет мемоизацию через $derived для кэширования вычислений. Профилирует производительность реактивных цепочек, выбирает оптимальные структуры для keyed each-блоков.

Реализует параллельную загрузку данных через Promise.all в SvelteKit load-функциях, управляет race conditions через $effect.tracking(). Создаёт переиспользуемые async-обёртки для stores, обрабатывает отмену запросов через AbortController.

Настраивает расширенные правила ESLint для Svelte 5 с проверкой рун и accessibility, интегрирует svelte-check в pre-commit хуки. Применяет SonarQube или Code Climate для метрик качества, покрывает критические компоненты unit-тестами через Vitest.

Реализует паттерны Svelte 5: compound-компоненты через snippet-ы, render delegation, context API для dependency injection. Применяет паттерн действий (use:action) для переиспользуемой DOM-логики, проектирует адаптивные layout-ы в SvelteKit.

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

Проектирует нормализованные хранилища данных в Svelte stores и $state-рунах, применяет деревья и графы для навигационных структур SvelteKit. Использует WeakMap для кэширования ссылок на компоненты, оптимизирует структуры для серверных load-функций.

Создаёт строгие TypeScript-интерфейсы для пропсов компонентов, типизирует stores и $derived-руны с generics. Настраивает svelte-check в strict-режиме, типизирует form actions, server hooks и API endpoints SvelteKit с полной безопасностью типов.

Frontend Development · 18

Настраивает систему визуального тестирования для Svelte: Playwright с pixel-сравнением, Chromatic для Storybook-компонентов. Создаёт тесты для разных viewports и тем оформления, интегрирует визуальные проверки в CI через GitHub Actions, управляет baseline-снимками.

Реализует продвинутую доступность в Svelte-компонентах: live regions для динамического контента, focus management при навигации SvelteKit. Настраивает aria-* атрибуты для кастомных виджетов, создаёт skip-links и корректные heading-иерархии в layout-ах.

Создаёт комплексные тесты Svelte-компонентов: мокирование stores и $state, тестирование $derived-вычислений, async-операций. Тестирует компоненты с контекстом, слотами и snippet-ами, настраивает coverage-отчёты Vitest, создаёт test utilities для SvelteKit.

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

Работает с micro-frontends в Svelte: использует vite-plugin-federation для Svelte Module Federation, реализует Svelte components как Web Components для интеграции с любым фреймворком. Настраивает shared state через writable stores с cross-MFE synchronization через events.

Оптимизирует бандл SvelteKit-приложения: настраивает code splitting по маршрутам, manualChunks для vendor-библиотек, preload стратегии. Минимизирует CSS через Tailwind purge, анализирует дублирование зависимостей, настраивает gzip/brotli сжатие на сервере.

Разрабатывает компоненты дизайн-системы на Svelte 5 с типизированными $props(), слотами и snippet-ами для гибкой композиции. Настраивает Storybook для документации Svelte-компонентов, создаёт варианты через CSS variables и Tailwind-классы.

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

Применяет продвинутые CSS-фичи в Svelte: container queries, has(), nesting, слои каскада (@layer). Создаёт адаптивные layout-ы с dynamic viewport units, использует Svelte transitions и animations с CSS keyframes для плавных UI-переходов.

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

Оптимизирует Core Web Vitals в SvelteKit: preload критических ресурсов, lazy loading через Svelte actions, font optimization. Настраивает web-vitals библиотеку для RUM-мониторинга, улучшает INP через дебаунс обработчиков событий и оптимизацию $effect.

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

Применяет CSS-in-JS подходы в Svelte-компонентах: scoped styles с динамическими class bindings и CSS custom properties. Оптимизирует рендеринг через compile-time оптимизацию стилей Svelte. Интегрирует design tokens и тестирует визуальные состояния компонентов.

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

Реализует продвинутые паттерны загрузки данных в SvelteKit: параллельные load-функции, invalidateAll для обновления, streaming с promises. Создаёт типобезопасные API-обёртки, настраивает кэширование ответов через Cache-Control headers в server routes.

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

Настраивает PWA в SvelteKit с кастомным service worker: стратегии кэширования (stale-while-revalidate, cache-first), offline-fallback страницы. Реализует фоновую синхронизацию данных, push-уведомления и обновление SW без потери состояния $state.

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

Настраивает стратегии рендеринга в SvelteKit: SSR для динамических страниц, prerender для статических, CSR для SPA-секций. Использует adapter-static и adapter-node, реализует ISR-подобные паттерны через кэширование headers и invalidation.

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

Проектирует состояние SvelteKit-приложения: глобальные stores для авторизации и настроек, context API для tree-scoped данных, $state для форм. Реализует optimistic updates через form actions, синхронизирует серверное и клиентское состояние через load-invalidation.

Svelte / SvelteKit Применение

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

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

Настраивает Tailwind CSS для SvelteKit-проекта: кастомная тема, плагины, content-пути для Svelte-файлов. Комбинирует Tailwind с scoped-стилями Svelte и Skeleton UI, создаёт переиспользуемые компонентные варианты через class: директиву и clsx.

Настраивает Vite для SvelteKit-проекта: кастомные алиасы путей, proxy для API, оптимизация зависимостей (optimizeDeps). Подключает Vite-плагины для SVG-компонентов, imagetools, настраивает build-оптимизации и environment variables для разных окружений.

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

Применяет продвинутые Web API в Svelte: ResizeObserver и MutationObserver через actions, Web Workers для тяжёлых вычислений, Clipboard API. Интегрирует Geolocation, Media API и Notification API в SvelteKit, управляет жизненным циклом через $effect cleanup.

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

Создаёт Svelte-компоненты, экспортируемые как Web Components через customElement: true, настраивает shadow DOM и проброс свойств. Интегрирует сторонние UI-библиотеки на Web Components в SvelteKit, обеспечивает корректную гидратацию SSR.

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

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

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

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

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

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

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