Мэтч
Покажет вашу совместимость с вакансией
Описание вакансии
Frontend / Mobile Developer — early-stage platform
Format: Full-time, remote | PWA → React Native (Expo)
Product context
Мы строим многоконтекстную mobile-first платформу, где один пользователь одновременно может быть организатором сообщества, участником события, учеником в образовательной группе и creator'ом цифрового контента — и в каждом контексте у него разные права, интерфейс и информационная архитектура. Frontend здесь — не «верстка экранов», а клиентская часть системы.
Первый релиз — responsive PWA + Admin Web: onboarding, цифровая идентичность, каталог сообществ и событий, QR check-in, история активности, reward points. Следом — native mobile app на Expo (React Native) с тем же доменом, но с полноценными device capabilities. По roadmap — geo-social слой, платежи и rewards, realtime interactive experiences, creator economy; high-stakes флоу реализуются с той же дисциплиной, что и в fintech.
The role
Frontend-разработчик на этом проекте — человек, который:
- понимает, что цифровой профиль пользователя — не «аватарка и bio», а economic identity с QR, status tiers, балансом и историей активности — и строит UI, который это держит;
- проектирует клиентскую архитектуру, которая переживёт переход PWA → native и рост продукта — без big-bang rewrite каждый квартал;
- осознаёт, что contextual membership (один пользователь — разные роли в разных группах) — это не только backend-задача, но и frontend-проблема: контекст, навигация, доступные действия;
- работает вплотную с архитектором и PM: участвует в формировании флоу и API-контрактов, а не ждёт готовых user stories;
- берёт ownership за клиентский слой: от scaffold'а и shared modules до release hygiene в сторах.
Key engineering challenges
Архитектурно обусловленные вызовы — не полный backlog, а то, с чем столкнётся разработчик:
- PWA → native path — один домен, два клиента; shared logic и чёткие границы, чтобы переход на Expo не стал переписыванием с нуля.
- Contextual membership UI — текущий контекст, доступные действия и переключение между ролями без когнитивной перегрузки и рассинхрона state.
- Digital identity card — ID, QR, status tiers, balance, activity history в одном экране; performance и читаемость на mid-range Android.
- QR check-in flow — сканирование в браузере (navigator.mediaDevices) и в Expo (expo-barcode-scanner); zero ambiguity в success / error / retry.
- Admin tooling — CRUD для сообществ и событий, списки пользователей, метрики, ручное начисление points; operational UI, не «внутренний прототип».
- Geo-social catalog — карта сообществ на Mapbox GL JS; privacy-by-design, без live GPS как default.
- Realtime interactive UI — Skia / Reanimated для performance-sensitive experiences следующей фазы; motion с учётом ограничений mobile.
Client architecture (how we expect code to be shaped)
Мы не требуем называть архитектуру модными аббревиатурами, но ждём дисциплинированную структуру кода по мере роста продукта:
- Server state = TanStack Query (source of truth от BFF); не дублировать в global store и не размазывать по useState-деревьям.
- Local UI state = Zustand (или эквивалент) для того, что не server: drafts, modals, navigation-adjacent UI, feature flags. Держать маленьким и осознанным.
- API boundaries = Zod для runtime validation BFF responses и критичных form payloads — не «только TypeScript».
- MVVM-style = thin screen components; view-models как custom hooks (например, useIdentityCard), которые комбинируют queries, mutations и local state; без «500-line screens».
- High-stakes flows (check-in, money movement, multi-step onboarding) = explicit state model — state machine или строгие unidirectional steps — чтобы transitions были testable и auditable.
- Evolving complexity = старт feature-first; по мере роста — clearer domain boundaries (shared pure TS modules) для правил, которые переживают один экран.
Tech stack
- Web / PWA: React · Vite · TypeScript · Tailwind CSS
- Mobile: React Native · Expo SDK · New Architecture (Fabric + JSI)
- State: Zustand (UI state) · TanStack Query (server state)
- Forms: React Hook Form · Zod
- Navigation: Expo Router / React Router
- QR / NFC: expo-barcode-scanner · html5-qrcode (web) native modules where needed
- Maps: Mapbox GL JS
- Motion / canvas: React Native Skia · Reanimated
Responsibilities
- Построить и развить клиентскую кодовую базу с ранней стадии: scaffold, shared modules, feature structure, conventions — система, а не набор экранов.
- Реализовать пользовательскую PWA: onboarding → цифровая идентичность → первое сообщество → первый check-in.
- Реализовать Admin Web: CRUD для сообществ и событий, список пользователей, метрики, ручное начисление points.
- Интегрироваться с REST API бэкенда; backend — source of truth; без secrets в клиенте.
- Реализовать QR-сканирование в браузере и в Expo; подготовить foundation для NFC где это уместно.
- Поднять и развивать Expo-проект на New Architecture — как полноценный клиент, а не «демо на будущее».
- Поддерживать release hygiene: TestFlight / Internal testing, versioning, store submissions по мере готовности.
- По мере roadmap — geo-social, payments & rewards, realtime experiences, creator economy.
Requirements
- 4+ года опыта с React (TypeScript) в production.
- Опыт с React Native / Expo в production: iOS и Android из одной кодовой базы.
- TanStack Query (или чёткий эквивалент) + light global store — proven patterns, не эксперименты на prod.
- Умение собирать чистый, консистентный UI из product-спеков; аккуратная вёрстка, все UI states covered.
- Базовый опыт с PWA: manifests, service workers.
- Expo New Architecture: Fabric, JSI, TurboModules.
- React Native Skia / Reanimated — performance-sensitive и interactive UI на mobile.
- NFC / QR с нативными модулями.
- Git, code review, CI-friendly mindset: lint, typecheck, small PRs.
- English — достаточно для чтения API- и SDK-документации.
Nice to have
- Mapbox или другие mapping-библиотеки.
- Опыт публикации в App Store / Google Play.
- Опыт в fintech, payments или high-stakes transactional UX.
- Maestro / Detox или snapshot testing для critical paths.
What we expect
- Systems thinking: решения масштабируются вместе с продуктом, а не переписываются с нуля каждый квартал.
- Product ownership: участие в формировании user stories, flow logic и API expectations — не только исполнение brief'а.
- Thorough implementation: корректная обработка loading / error / empty states; разумные решения при неполной спецификации.
- Discipline on quality: performance (list virtualization, re-render control), stability, platform limitations flagged early.
- Proactive communication, когда флоу упирается в backend-зависимость, native limit или пробел в спеке — а не silent assumptions.
Будьте осторожны: если работодатель просит войти в их систему, используя iCloud/Google, прислать код/пароль, запустить код/ПО, не делайте этого - это мошенники. Обязательно жмите "Пожаловаться" или пишите в поддержку. Подробнее в гайде →
Вакансия размещена на Hirify напрямую от HR/нанимающего менеджера