{"id":1479149,"url":"https://alion.io/job/tmgt-senior-frontend-razrabotchik-react-typescript","title":"Senior Frontend-разработчик (React / TypeScript)","company":{"id":1850,"name":"TMGT","domain":"transmashgaztoken.ru","url":"https://alion.io/company/transmashgaztoken","size_band":"11-50","is_staffing_agency":false,"employer_type":"direct","is_intermediary":false,"listed_via":null,"ats_vendor":"HeadHunter","truth_index":{"grade":"E","score":25,"open_postings":4,"ghost_share":1,"stale_share":0,"repost_share":1,"time_to_fill_p50_days":43,"computed_at":"2026-10-10T05:45:15Z"}},"role":"Frontend","role_family":"Frontend","seniority":"senior","employment_type":null,"work_mode":"on_site","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":{"min":250000,"max":300000,"currency":"RUB","period":"month","gross":null,"usd_annual":41124},"salary_estimate":null,"experience_years_min":4,"visa_sponsorship":false,"relocation_package":false,"has_equity":false,"technologies":[{"name":"Ant Design","optional":false},{"name":"Figma","optional":false},{"name":"GitHub","optional":false},{"name":"GitLab CI","optional":false},{"name":"Go","optional":false},{"name":"gRPC","optional":false},{"name":"Mantine","optional":false},{"name":"Material UI","optional":false},{"name":"Playwright","optional":false},{"name":"React Query","optional":false},{"name":"React.js","optional":false},{"name":"Recharts","optional":false},{"name":"Redux Toolkit","optional":false},{"name":"Rest API","optional":false},{"name":"shadcn/ui","optional":false},{"name":"State Management","optional":false},{"name":"Storybook","optional":false},{"name":"Tailwind CSS","optional":false},{"name":"TypeScript","optional":false},{"name":"ViPNet","optional":false},{"name":"Vite","optional":false},{"name":"Vitest","optional":false},{"name":"VPN","optional":false},{"name":"WebSockets","optional":false},{"name":"Zustand","optional":false},{"name":"JavaScript","optional":true},{"name":"Radix UI","optional":true},{"name":"Redux","optional":true}],"status":"live","first_seen_at":"2026-09-29T19:32:39Z","employer_posted_date":"2026-09-29","last_verified_at":"2026-10-09T21:27:12Z","board_verified":false,"closed_at":null,"days_open":12,"trust":{"level":"ok","repost_count":null,"flags":[],"days_open":12},"description":"О роли\n Вы строите фронтенд-слой регулируемой ЦФА-платформы под российских финансовых институтов. Это не очередной SaaS-лендинг - это мульти-тенантный admin console с пятью разными типами пользователей (эмитент, брокер, инвестор, compliance-офицер, regulator-view), real-time дашбордами и сложными compliance-формами.\n Что предстоит делать\nTenant Admin Console - мульти-тенантный UI с RBAC: разные пользователи видят разный UI и разные данные\nProof-of-Reserves дашборды - публичные real-time дашборды по каждому эмитенту стейблкоина\nCompliance UI - формы KYB-онбординга эмитентов, KYC-онбординга инвесторов, sanctions screening\nЖурнал операций - таблицы и графики транзакций ЦФА с фильтрацией для compliance-офицеров\nReal-time updates через WebSocket - orderbook, статусы транзакций, события платформы\nWhite-label SDK - React-компоненты для встраивания клиентами в их собственные UI\nДокументация для разработчиков клиентов: Storybook, demo-страницы, API reference\nПрофиль\nReact + TypeScript: 4+ года production-опыта и senior-level ownership. Hooks, Suspense, Context, error boundaries - на автомате.\nState management: Опыт с Redux Toolkit, Zustand, или похожим. Работа со сложным состоянием в SaaS-приложениях.\nUI/UX чувствительность: Понимание design systems, Figma-handoff, accessibility. Опыт с компонентными библиотеками (Ant Design, Mantine, shadcn/ui, MUI).\nДанные и графики: Опыт с charting-библиотеками (Recharts, ECharts, D3) для финансовых данных, тайм-серий, real-time updates.\nBackend-понимание: Знание REST/gRPC, WebSocket, OpenAPI. Опыт работы с тяжёлыми API. Базовое понимание авторизации (OAuth2, JWT, RBAC).\nКачества: Самостоятельность, готовность работать с финансовой терминологией (тип ЦФА, эмитент, оферта, регуляторный отчёт), понимание performance в браузере.\nСтек\n React 18+, TypeScript, Vite, Tailwind CSS, Recharts/ECharts, Zustand или Redux Toolkit, React Query, Vitest + Playwright, Storybook, self-hosted GitLab CI. Backend на Go + gRPC.\n Формат работы\n Основной формат - работа из офиса в Хамовниках, Москва. Ограниченный гибрид возможен по согласованию, но большинство рабочих дней команда проводит в офисе. Remote-only не рассматриваем: для этой роли важно быть частью ежедневного продуктового и инженерного контекста команды.\n Условия: корпоративный ноутбук с MDM и шифрованием диска, VPN ViPNet/Континент, NDA + соглашение о коммерческой тайне (ФЗ-98), доступ только к staging/test API, не к продакшену.\n Что мы предлагаем\n2 параллельных позиции - команда из 3 человек (Senior + 2 SWE), нормальный темп без overload\nРеальный продукт под регулируемым финрынком - каждая фича проходит compliance review\nModern stack без legacy\nОфисный формат в Хамовниках с возможностью ограниченного гибрида по согласованию\nОпыт работы со сложными интерфейсами уровня финансовой инфраструктуры - редкая запись в CV\nИдеальный кандидат\n Senior Frontend-инженер с 4+ годами production-опыта, сильным React/TypeScript и личным ownership сложного customer-facing продукта. Особенно ценен опыт fintech, payments, SaaS с критичными пользовательскими состояниями, real-time интерфейсами, ролями/правами и security-sensitive UX. Сильное техническое образование - заметный плюс, но production-результат важнее названия вуза.\n Процесс\n Полностью письменный до оффера. После screening - короткое тестовое задание (UI-фрагмент с charts и real-time updates, 3-4 часа), затем оффер.\n Резюме + ссылки на pet-projects/GitHub в чат с пометкой «SWE Frontend».","description_format":"text","description_chars":3457,"description_truncated":false,"requirements":{"experience_years_min":4,"management_years_min":null,"team_size_min":null,"manages_managers":false,"education":{"level":"bachelor","optional":false},"security_clearance":false,"languages":[{"language":"Russian","level":"Advanced (C1)","optional":false}]},"benefits":[],"hiring_locations":[],"hiring_excludes":[],"relocation_offered":false,"industries":["Manufacturing","Natural Resources","Industrial Machinery","Oil & Gas"],"lifecycle":[{"event":"open","at":"2026-09-29T19:38:05Z"}],"visa":[],"liveness":{"score":90,"band":"hot","label":"Hiring now","p_open":1,"p_active":0.903,"p_room":1,"age_days":10,"expected_fill_days":43,"reasons":["conf:8","velocity","win:early"],"computed_at":"2026-10-10T05:45:15Z"},"pay":{"stated_usd_annual":41124,"is_top_pay":false},"html_url":"https://alion.io/job/tmgt-senior-frontend-razrabotchik-react-typescript","json_url":"https://alion.io/job/tmgt-senior-frontend-razrabotchik-react-typescript.json","meta":{"generated_at":"2026-10-11T22:26:13Z","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":12244,"day_limit":null,"remaining_today":null,"minute_limit":300,"resets_at":"2026-10-12T00: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":1850},"rest":"https://alion.io/mcp/rest/get_company?id=1850"},"human":"https://alion.io/catalog?offer=company.slices&for=job%2Ftmgt-senior-frontend-razrabotchik-react-typescript"},{"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%2Ftmgt-senior-frontend-razrabotchik-react-typescript"},{"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%2Ftmgt-senior-frontend-razrabotchik-react-typescript"},{"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/tmgt-senior-frontend-razrabotchik-react-typescript\", \"note\": \"what you need it for\"}"},"human":"https://alion.io/catalog?offer=company.verify&for=job%2Ftmgt-senior-frontend-razrabotchik-react-typescript"}]}