Objetivo del cargo Responsable de construir y mantener la aplicación móvil multiplataforma (iOS/Android/Web), traduciendo los flujos de producto en interfaces fluidas, confiables y de alto rendimiento. Trabaja en estrecha coordinación con backend y diseño para implementar exactamente lo especificado sobre el stack de React Native + Expo.
Principales funciones
- Desarrollar y mantener pantallas, componentes y flujos de la app móvil con React Native + Expo.
- Implementar la navegación con expo-router (stacks, tabs, modales, deep linking) y guards de autenticación.
- Integrar y consumir las APIs REST del backend, gestionando autenticación, refresh de tokens y errores HTTP.
- Administrar el estado de servidor con TanStack Query (caché, invalidaciones, optimistic updates, polling).
- Construir interfaces animadas y con gestos (Reanimated, GestureHandler, BottomSheet) respetando el design system y los tokens propios.
- Implementar y mantener la internacionalización en 4 idiomas, incluyendo soporte RTL.
- Asegurar el manejo seguro de tokens y datos sensibles (expo-secure-store) y el monitoreo de errores (Sentry).
- Escribir, mantener y ampliar las pruebas (Jest + RNTL) sobre la suite existente.
- Desarrollar los flujos fintech (KYC/KYB, carga de documentos, procesos multi-paso) y la UI de cripto (wallets, addresses, transacciones on-chain).
- Optimizar el rendimiento de la app (memoización, lazy loading, prevención de ANRs).
- Participar en el pipeline de CI/CD del frontend (GitHub Actions, SonarCloud, ESLint, pre-commit hooks).
- Coordinar con backend y diseño para alinear contratos de datos y especificaciones antes de implementar.
Requisitos mínimos (obligatorios)
Experiencia general
- 3 años o más de experiencia comprobable en desarrollo frontend mobile.
- Inglés B2 o superior (documentación técnica y coordinación con equipo internacional).
- Dominio avanzado de IA’s.
React Native + Expo
- Dominio del ecosistema Expo: SDK, EAS Build, dev client y expo-router.
- Routing basado en archivos (file-based routing), layouts anidados y deep linking.
- Gestión de builds: preview, production y actualizaciones OTA.
React + TypeScript
- Hooks avanzados (useRef, useMemo, useCallback, custom hooks).
- Context API y providers anidados (la app maneja ~8 niveles).
- TypeScript estricto: generics, utility types, discriminated unions.
- Validación de schemas con Zod.
Estado de servidor — TanStack Query (React Query v5)
- Query keys, invalidación y optimistic updates.
- Mutations con onSuccess / onError / onSettled.
- Patrones de staleTime, refetchOnMount y enabled.
- Polling (refetchInterval) para flujos asíncronos.
Estilos y UI
- NativeWind (Tailwind para RN) con tokens de diseño propios.
- Reanimated para animaciones nativas (shared values, worklets).
- BottomSheet (gorhom) y manejo de gestos (GestureHandler, PanResponder).
- Diseño responsive y manejo de diferencias iOS/Android/Web.
Navegación — expo-router v5
- Stacks, tabs, modales y guards de autenticación.
- Parámetros tipados y validación de search params con Zod.
- Deep linking configurado.
Integración con APIs REST
- Axios con interceptores (auth, refresh token, HMAC, idioma).
- Manejo de errores HTTP: 401 (refresh), 409 (conflict), 422 (validation).
- Mapeo de respuestas del backend a tipos TypeScript respetando los nombres de campo (sin renombrar).
Internacionalización (i18n, 4 idiomas)
- i18next + react-i18next.
- Manejo de claves anidadas y planas (el proyecto usa ambas).
- Soporte RTL para árabe (layout, iconografía y direccionalidad).
Seguridad mobile
- expo-secure-store para el almacenamiento de tokens.
- No exponer secretos en el bundle (limitación conocida del proyecto).
- Sentry para seguimiento de errores.
Testing
- Jest + React Native Testing Library.
- Mocking de hooks, queries y navegación.
- Mantenimiento y ampliación de la suite existente (~2.090 tests).
Diferenciales (suman puntos)
- Flujos fintech: formularios KYC/KYB, carga de documentos y procesos multi-paso.
- UI cripto: visualización de wallets, addresses, gas y transacciones on-chain.
- Performance mobile: prevención de ANRs, memoización, InteractionManager y lazy loading.
- CI/CD frontend: GitHub Actions, SonarCloud, ESLint y pre-commit hooks.
- Familiaridad con la New Architecture de React Native (por defecto en versiones recientes; Expo SDK 56 incorpora RN 0.85 y React 19.2).
Cualidades / soft skills
- Coordina con backend antes de implementar; no asume la forma (shape) de las respuestas.
- Reporta bugs con evidencia: captura + request + response.
- Implementa exactamente lo solicitado; no rediseña sin autorización.
- Atención al detalle y disciplina de calidad de código (tipado estricto, pruebas, revisiones).
- Comunicación clara y asíncrona, con sentido de pertenencia (ownership) sobre lo que entrega.
- Cómodo trabajando en un entorno regulado y de alta transaccionalidad, donde la precisión importa.
Stack en una línea: React Native + Expo + TypeScript + TanStack Query + Reanimated + expo-router + i18n + testing + integración con APIs REST.