Назад
3 часа назад

Frontend/Mobile Developer (React Native, Expo)

4 500$
Формат работы
remote
Тип работы
fulltime
Грейд
middle/senior
Английский
b2
Вакансия от Hirify. Размещена напрямую Вакансия размещена на Hirify напрямую от HR/нанимающего менеджера

Мэтч

Покажет вашу совместимость с вакансией

Описание вакансии

TL;DR
Frontend/Mobile Developer (React Native/Expo): разработка многоконтекстной mobile-first платформы с акцентом на архитектуру клиентской части. Фокус на проектировании масштабируемых решений для PWA и native-приложений с использованием React Native.

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/нанимающего менеджера