{"id":2079194,"url":"https://alion.io/job/informatsionny-gorod-frontend-razrabotchik-2","title":"Frontend-разработчик","company":{"id":66451,"name":"Informatsionny Gorod","domain":"ig.mos.ru","url":"https://alion.io/company/informatsionny-gorod","size_band":"1001-5000","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"HeadHunter","truth_index":{"grade":"A","score":88,"open_postings":24,"ghost_share":0.125,"stale_share":0,"repost_share":0.333,"time_to_fill_p50_days":30,"computed_at":"2026-10-29T05:49:05Z"}},"role":"Frontend","role_family":"Frontend","seniority":"senior","employment_type":null,"work_mode":"hybrid","remote_scope":null,"remote_scope_basis":null,"remote_working_hours":null,"hiring_geo_confidence":"structured","locations":["Moscow, Russia"],"countries":["RU"],"hiring_countries":[],"hiring_countries_total":0,"salary":null,"salary_estimate":{"min_usd":31000,"max_usd":64000,"period":"year","method":"role_seniority_country_cell","sample_n":22},"experience_years_min":6,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"Cypress","optional":false},{"name":"Docker","optional":false},{"name":"JavaScript","optional":false},{"name":"Jest","optional":false},{"name":"Keycloak","optional":false},{"name":"Redux","optional":false},{"name":"Rest API","optional":false},{"name":"Swagger","optional":false},{"name":"TypeScript","optional":false},{"name":"Vitest","optional":false},{"name":"WebSockets","optional":false},{"name":"Apache ECharts","optional":true},{"name":"Apache Kafka","optional":true},{"name":"Grafana","optional":true},{"name":"Node JS","optional":true},{"name":"React Native","optional":true},{"name":"React.js","optional":true},{"name":"Turborepo","optional":true},{"name":"Vite","optional":true},{"name":"Webpack","optional":true}],"status":"live","first_seen_at":"2026-10-08T09:26:50Z","employer_posted_date":"2026-10-08","last_verified_at":"2026-10-29T05:56:50Z","board_verified":true,"closed_at":null,"days_open":21,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":21},"description":"Департамент информационных технологий Москвы создает и развивает цифровые проекты, которые делают столицу комфортнее, а жизнь горожан - удобнее и мобильнее. Для системы управления столицей технологии - это незаменимый инструмент, который применяется во всех отраслях экономики, городского хозяйства и социальной сферы. А для миллионов горожан - повседневный помощник, который позволяет получать сотни услуг и сервисов в удобном цифровом формате в режиме 24/7..\n Что нужно делать:\n Поддерживать и развивать административную панель Keycloak для управления правами доступа (клиенты, пользователи, роли, мапперы, политики).\n Кастомизировать внешний вид и поведение страниц аутентификации пользователя в системе (темы Keycloak).\n Осуществлять построение дашбордов наблюдаемости и мониторинга на основе метрик, логов и SLA-показателей платформы.\n Проектировать клиентскую архитектуру и пользовательский опыт:\n Разрабатывать SPA на React с использованием TypeScript, проектировать маршрутизации, управлять состоянием и слоем абстракции над API.\n Унифицировать UI-компоненты и дизайн-систему\n Обеспечивать отзывчивость, доступность (a11y) и кросс-браузерную совместимость интерфейсов.\n Реализовывать клиентскую логику аутентификации и авторизации (OAuth 2.0 / OIDC, PKCE, обновление токенов).\n Прорабатывать интеграцию с REST API (OpenAPI/Swagger), обрабатывать серверные события через WebSocket / Server-Sent Events.\n Взаимодействовать с бэкенд-командами для улучшения контрактов API, обработки ошибок и версионирования.\n Писать unit-тесты (Jest, Vitest) и интеграционные/E2E-тесты(Cypress).\n Участвовать в code review, выработке стандартов и best practices по React и TypeScript.\n Мониторить производительность фронтенда, профилирование, оптимизацию загрузки и рендеринга.\n Описывапть архитектурные решения, пользовательские сценарии и инструкции по развёртыванию клиентских приложений.\n Вести базы знаний и шаблоны фронтенд-разработки для платформенных решений.\n Участвовать в планировании, оценке задач и демонстрации результатов заказчикам и смежным командам.\n Какие знания и навыки нам важны: Опыт коммерческой разработки веб-приложений от 6 лет, из них не менее 3 лет - на React с использованием TypeScript.\n Уверенное владение React (хуки, контекст, Suspense), TypeScript, современным JavaScript (ES6+), HTML5 и CSS3 (Flexbox, Grid, адаптивная вёрстка).\n Опыт построения архитектуры сложных SPA: управление состоянием (Redux / MobX), маршрутизация, ленивая загрузка модулей, обработка ошибок.\n Практический опыт интеграции с REST API: знание принципов REST, умение читать и использовать спецификации OpenAPI (Swagger), работа с асинхронными запросами.\n Понимание протоколов OAuth 2.0 и OpenID Connect на уровне клиентской части.\n Навыки тестирования: unit-тесты (Jest, Vitest), тесты компонентов (React Testing Library), E2E-тесты (Cypress).\n Уверенное владение инструментом Docker и понимание принципов деплоя фронтенд-приложений.\n Умение диктовать и обосновывать UX/UI-решения, ввлиять на проектирование интерфейсов, а не просто следовать готовым макетам.\n Опыт написания технической документации (описание архитектуры, инструкции, ADR).\n Коммуникативные навыки: способность аргументировать архитектурные решения, эффективно взаимодействовать с бэкенд-командами, аналитиками и заказчиками.\n Будет плюсом:\n Опыт интеграции с Keycloak (настройка клиентов, понимание realms и ролей).\n Опыт работы с UI для управления Apache Kafka (топики, consumer groups, Schema Registry).\n Опыт использования инструментов кодогенерации клиентов на основе OpenAPI для автоматизации создания API-слоя.\n Навыки визуализации данных (Grafana, ECharts) и построения дашбордов.\n Опыт разработки мобильных приложений с использованием React Native.\n Понимание специфики государственных информационных систем и требований к безопасности (в том числе к интерфейсам).\n Опыт работы с монорепозиториями (Nx, Turborepo) и системами сборки (Vite, Webpack).\n Опыт разработки бэкенда на Node.js или Java для более глубокого понимания контрактов API.\n Навыки работы с веб-сокетами и Server-Sent Events для отображения данных в реальном времени.\n Условия: Рыночную зарплату и премии.\n Драйвовые задачи и ресурсы для их реализации.\n Гибридный или удаленный формат работы.\n Преимущества аккредитованной ИТ-компании.\n Материальную помощь в случае важных событий в жизни.\n Корпоративное обучение и доступ к онлайн-библиотеке.\n Корпоративные тренировки и спортивные активности - бег, футбол, волейбол, баскетбол, теннис и другие\n Комьюнити по интересам\n Скидки от партнеров на ДМС, связь, развлечения, подарки, спорт.","description_format":"text","description_chars":4576,"description_truncated":false,"requirements":{"experience_years_min":6,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":null,"security_clearance":false,"languages":[{"language":"Russian","level":"Advanced (C1)","optional":false}]},"benefits":[],"hiring_locations":[],"hiring_excludes":[],"relocation_offered":false,"industries":[],"lifecycle":[{"event":"open","at":"2026-10-08T09:30:34Z"}],"visa":[],"liveness":{"score":76,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.849,"p_room":0.9,"age_days":20,"expected_fill_days":30,"reasons":["conf:25","velocity","win:mid"],"computed_at":"2026-10-29T05:49:05Z"},"pay":null,"html_url":"https://alion.io/job/informatsionny-gorod-frontend-razrabotchik-2","json_url":"https://alion.io/job/informatsionny-gorod-frontend-razrabotchik-2.json","meta":{"generated_at":"2026-10-30T01:09:32Z","cache_seconds":300,"methodology":"https://alion.io/methodology","terms":"https://alion.io/terms","contact":"https://alion.io/contact","api":"https://alion.io/developers","about":"Alion is a live layer of people, companies and AI agents: who they are, whether they are real and active right now, what they do and how to work with them, readable by people and by agents and paid per call.","catalog":"https://alion.io/catalog.json","usage":{"tier":"crawler_verified","counted_by":"address","units_charged":1,"used_today":1599,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-10-31T00:00:00Z"}},"offers":[{"id":"company.slices","title":"One company in depth, by slice","status":"live","price":{"credits":0.02,"usd":0.002,"plus_per_slice":{"credits":0.05,"usd":0.005}},"unit":"per company, plus each slice with data","note":"the employer in depth","call":{"mcp_tool":"get_company","arguments":{"id":66451},"rest":"https://alion.io/mcp/rest/get_company?id=66451"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Finformatsionny-gorod-frontend-razrabotchik-2"},{"id":"market.stats","title":"A market slice: pay, demand and time to fill","status":"live","price":{"credits":1,"usd":0.1},"unit":"per slice","note":"pay, demand and time to fill for this role and place","call":{"mcp_tool":"market_stats"},"human":"https://alion.io/catalog?offer=market.stats&for=job%2Finformatsionny-gorod-frontend-razrabotchik-2"},{"id":"job.search","title":"Open jobs by role, technology, place, pay and visa","status":"live","price":{"credits":0.02,"usd":0.002},"unit":"per posting in a list","note":"similar open postings","call":{"mcp_tool":"search_jobs"},"human":"https://alion.io/catalog?offer=job.search&for=job%2Finformatsionny-gorod-frontend-razrabotchik-2"},{"id":"company.verify","title":"Is this company real and active right now","status":"pilot","price":null,"unit":"per company","request":{"url":"https://alion.io/catalog/request","method":"POST","body":"{\"offer\": \"company.verify\", \"for\": \"job/informatsionny-gorod-frontend-razrabotchik-2\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Finformatsionny-gorod-frontend-razrabotchik-2"}],"agent":{"mcp":"https://alion.io/mcp/jobs","mcp_open":"https://alion.io/mcp/open","next":[{"tool":"get_job","arguments":{"id":2079194}},{"tool":"search_jobs","arguments":{"company":"ig.mos.ru","detail":"compact"}},{"tool":"match_people","arguments":{"job_id":2079194},"note":"people open to offers who fit this vacancy"}],"note":"The same data through MCP tools: https://alion.io/mcp/open needs no sign-in (compact searches, postings, people); https://alion.io/mcp with an Alion account has everything. Docs: https://alion.io/developers"}}