Frontend-разработчик
удалёнка, гибрид, Москва
Команда ДИТ Москвы развивает фронтенд для платформы управления городом. Вы будете поддерживать и развивать админпанель Keycloak, создавать SPA на React/TypeScript, интегрировать с REST/OpenAPI и строить дашборды мониторинга для доступных и безопасных сервисов
ГрейдSenior
Опыт6+ лет
Стек
TypeScriptReactOpenAPIDockerReduxMobXOAuth 2.0 / OIDCWebSocketSSEJestVitestCypressReact Testing LibraryKeycloakGrafanaEChartsNxViteWebpack
Задачи
- •Поддержка и развитие административной панели Keycloak для управления правами доступа
- •Кастомизация тем и страниц аутентификации в Keycloak
- •Разработка и поддержка SPA на React с TypeScript: маршрутизация, управление состоянием, абстракция над API
- •Интеграция с REST API по спецификациям OpenAPI/Swagger и работа с серверными событиями (WebSocket/SSE)
- •Построение дашбордов наблюдаемости и мониторинга по метрикам, логам и SLA
- •Писать тесты (unit, компонентные, E2E), участвовать в code review и описывать архитектурные решения
Обязательно
- •6+ лет коммерческой разработки веб‑приложений
- •≥3 года разработки на React с TypeScript
- •Глубокие знания JavaScript (ES6+), HTML5 и CSS3 (Flexbox, Grid, адаптивная вёрстка)
- •Опыт проектирования архитектуры сложных SPA: маршрутизация, управление состоянием (Redux/MobX), ленивые модули и обработка ошибок
- •Опыт интеграции с REST API и работы со спецификациями OpenAPI (Swagger)
- •Знание OAuth 2.0 / OpenID Connect на клиентской части (PKCE, обновление токенов)
- •Опыт тестирования: unit и компонентные тесты (Jest/Vitest, React Testing Library) и E2E (Cypress) и опыт работы с Docker
Будет плюсом
- •Опыт интеграции с Keycloak (настройка клиентов, realms, роли)
- •Опыт работы с UI для Apache Kafka и понимание топиков/consumer groups
- •Использование кодогенерации клиентов по OpenAPI
- •Навыки визуализации и построения дашбордов (Grafana, ECharts)
- •Опыт с монорепозиториями (Nx, Turborepo) и системами сборки (Vite, Webpack)
- •Понимание требований безопасности государственных информационных систем
- •Опыт разработки мобильных приложений на React Native
- •Опыт бэкенд‑разработки (Node.js или Java)