Frontend-разработчик
ГКУ ИнфогородМоскваГибридот 3 лет5/2Полная занятость
REST APITypeScriptReactJavaScriptFrontendSwaggerHTML5OpenAPICSS3OAuth 2.0KeycloakOpenID Connect
Описание
Департамент информационных технологий Москвы создает и развивает цифровые проекты, которые делают столицу комфортнее, а жизнь горожан — удобнее и мобильнее. Для системы управления столицей технологии — это незаменимый инструмент, который применяется во всех отраслях экономики, городского хозяйства и социальной сферы. А для миллионов горожан — повседневный помощник, который позволяет получать сотни услуг и сервисов в удобном цифровом формате в режиме 24/7.
Обязанности
- Поддерживать и развивать административную панель Keycloak для управления правами доступа (клиенты, пользователи, роли, мапперы, политики)
- Кастомизировать внешний вид и поведение страниц аутентификации пользователя в системе (темы Keycloak)
- Осуществлять построение дашбордов наблюдаемости и мониторинга на основе метрик, логов и SLA-показателей платформы
- Проектировать клиентскую архитектуру и пользовательский опыт
- Разрабатывать SPA на React с использованием TypeScript, проектировать маршрутизации, управлять состоянием и слоем абстракции над API
- Унифицировать UI-компоненты и дизайн-систему
- Обеспечивать отзывчивость, доступность (a11y) и кросс-браузерную совместимость интерфейсов
- Реализовывать клиентскую логику аутентификации и авторизации (OAuth 2.0 / OIDC, PKCE, обновление токенов)
- Прорабатывать интеграцию с REST API (OpenAPI/Swagger), обрабатывать серверные события через WebSocket / Server-Sent Events
- Взаимодействовать с бэкенд-командами для улучшения контрактов API, обработки ошибок и версионирования
- Писать unit-тесты (Jest, Vitest) и интеграционные/E2E-тесты(Cypress)
- Участвовать в code review, выработке стандартов и best practices по React и TypeScript
- Мониторить производительность фронтенда, профилирование, оптимизацию загрузки и рендеринга
- Описывать архитектурные решения, пользовательские сценарии и инструкции по развёртыванию клиентских приложений
- Вести базы знаний и шаблоны фронтенд-разработки для платформенных решений
- Участвовать в планировании, оценке задач и демонстрации результатов заказчикам и смежным командам
Требования
- Опыт коммерческой разработки веб-приложений от 6 лет, из них не менее 3 лет — на React с использованием TypeScript
- Уверенное владение React (хуки, контекст, Suspense), TypeScript, современным JavaScript (ES6+), HTML5 и CSS3 (Flexbox, Grid, адаптивная вёрстка)
- Опыт построения архитектуры сложных SPA: управление состоянием (Redux / MobX), маршрутизация, ленивая загрузка модулей, обработка ошибок
- Практический опыт интеграции с REST API: знание принципов REST, умение читать и использовать спецификации OpenAPI (Swagger), работа с асинхронными запросами
- Понимание протоколов OAuth 2.0 и OpenID Connect на уровне клиентской части
- Навыки тестирования: unit-тесты (Jest, Vitest), тесты компонентов (React Testing Library), E2E-тесты (Cypress)
- Уверенное владение инструментом Docker и понимание принципов деплоя фронтенд-приложений
- Умение диктовать и обосновывать UX/UI-решения, влиять на проектирование интерфейсов, а не просто следовать готовым макетам
- Опыт написания технической документации (описание архитектуры, инструкции, ADR)
- Коммуникативные навыки: способность аргументировать архитектурные решения, эффективно взаимодействовать с бэкенд-командами, аналитиками и заказчиками
Будет плюсом
- Опыт интеграции с Keycloak (настройка клиентов, понимание realms и ролей)
- Опыт работы с UI для управления Apache Kafka (топики, consumer groups, Schema Registry)
- Опыт использования инструментов кодогенерации клиентов на основе OpenAPI для автоматизации создания API-слоя
- Навыки визуализации данных (Grafana, ECharts) и построения дашбордов
- Опыт разработки мобильных приложений с использованием React Native
- Понимание специфики государственных информационных систем и требований к безопасности (в том числе к интерфейсам)
- Опыт работы с монорепозиториями (Nx, Turborepo) и системами сборки (Vite, Webpack)
- Опыт разработки бэкенда на Node.js или Java для более глубокого понимания контрактов API
- Навыки работы с веб-сокетами и Server-Sent Events для отображения данных в реальном времени
Условия
- Рыночную зарплату и премии
- Драйвовые задачи и ресурсы для их реализации
- Гибридный или удаленный формат работы
- Преимущества аккредитованной ИТ-компании
- Материальную помощь в случае важных событий в жизни
- Корпоративное обучение и доступ к онлайн-библиотеке
- Корпоративные тренировки и спортивные активности - бег, футбол, волейбол, баскетбол, теннис и другие
- Комьюнити по интересам
- Скидки от партнеров на ДМС, связь, развлечения, подарки, спорт
- Место работы: Москва, Нижний Сусальный переулок
- График работы: 5/2
- Рабочие часы: 8
Процесс отбора
- Задайте вопрос работодателю: он получит его с откликом на вакансию