Descripción del Rol
Buscamos un/a Senior Frontend & Mobile Engineer para liderar la arquitectura e implementación de nuestro portal web y aplicaciones móviles.
El rol se enfocará en construir experiencias de usuario escalables, seguras y de alta calidad usando React, React Native y TypeScript, trabajando en estrecha colaboración con los equipos de backend, producto, UX/UI, QA y DevOps. El candidato ideal tiene fuerte experiencia entregando aplicaciones web y móviles en producción, y comprende arquitectura de aplicaciones, integración de APIs, state management, seguridad, testing y procesos de release móvil.
Responsabilidades Principales
- Liderar la arquitectura frontend del portal web y las aplicaciones móviles.
- Construir aplicaciones web usando React y TypeScript.
- Construir aplicaciones cross-platform Android e iOS usando React Native y TypeScript.
- Definir arquitecturas frontend modulares con clara separación de responsabilidades y componentes reutilizables.
- Establecer patrones de diseño frontend y estándares de desarrollo.
- Diseñar y mantener componentes reutilizables y un design system consistente.
- Implementar experiencias responsive en desktop, tablet y mobile web.
- Integrar las aplicaciones frontend y mobile con APIs REST usando contratos OpenAPI definidos.
- Implementar manejo consistente de errores de API, loading states, retries, cancellation y escenarios de falla.
- Implementar flujos seguros de autenticación y autorización usando OAuth 2.0, OpenID Connect, JWT, PKCE y MFA.
- Integrar las aplicaciones cliente con proveedores de identidad como Microsoft Entra ID o soluciones equivalentes.
- Aplicar reglas de autorización a rutas, componentes, features e interacciones del usuario.
- Gestionar de forma segura tokens e información sensible en plataformas web y mobile.
- Implementar almacenamiento mobile seguro usando soluciones apropiadas para cada plataforma, como iOS Keychain y Android Keystore.
- Aplicar mejores prácticas de seguridad OWASP web y mobile.
- Diseñar estrategias de state-management y sincronización de datos usando tecnologías como React Query, Zustand, Redux, Context, o equivalentes.
- Implementar estrategias efectivas de client-side caching e invalidación de cache.
- Manejar escenarios de concurrency, incluyendo acciones duplicadas, cancelación de requests y race conditions de UI.
- Diseñar experiencias de usuario que manejen de forma elegante fallas temporales de backend o de red.
- Integrar push notifications para Android e iOS.
- Gestionar la integración de React Native con el lifecycle y los build systems de Android e iOS.
- Dar soporte al signing, releases y publicación de builds mobile a través de Apple App Store y Google Play Store.
- Definir e implementar estrategias de testing frontend/mobile.
- Desarrollar tests unitarios, de integración y de integración de APIs.
- Participar activamente en code reviews y discusiones de diseño técnico.
- Colaborar con equipos de DevOps en pipelines de build, test y release web/mobile.
- Colaborar con QA para definir flujos de UI testeables y escenarios end-to-end.
- Contribuir en decisiones de UX/UI y traducir requerimientos de producto en experiencias de usuario de alta calidad.
- Mantener la documentación de arquitectura e implementación frontend/mobile.
Requisitos Excluyentes (Must Have)
- Experiencia avanzada en TypeScript.
- Fuerte experiencia en producción con React para aplicaciones web.
- Fuerte experiencia en producción con React Native para aplicaciones Android e iOS.
- Sólido conocimiento de arquitectura de aplicaciones frontend, modularidad, componentes reutilizables y separación de responsabilidades.
- Experiencia implementando patrones comunes de diseño de software y componentes.
- Fuerte experiencia consumiendo e integrando APIs REST.
- Experiencia trabajando con contratos de API OpenAPI / Swagger.
- Sólido conocimiento de Promises, async/await, manejo de errores asincrónicos y fundamentos del event loop de JavaScript.
- Experiencia implementando flujos de autenticación seguros usando OAuth 2.0, OpenID Connect, JWT y PKCE.
- Experiencia implementando MFA e integraciones con proveedores de identidad.
- Entendimiento de autorización basada en claims y comportamiento seguro de autorización client-side.
- Sólido conocimiento de seguridad de aplicaciones web y mobile, incluyendo prácticas OWASP.
- Experiencia almacenando de forma segura tokens e información sensible en aplicaciones mobile.
- Fuerte experiencia con soluciones modernas de state-management y server-state.
- Experiencia implementando data fetching, sincronización e invalidación de cache.
- Experiencia construyendo librerías de componentes reutilizables o design systems.
- Fuertes habilidades de responsive design.
- Experiencia integrando push notifications para Android e iOS.
- Conocimiento funcional del lifecycle y los procesos de build de aplicaciones Android e iOS.
- Experiencia con signing de aplicaciones mobile, release management y publicación en App Store / Google Play.
- Experiencia diseñando e implementando UX/UI de alta calidad.
- Conocimiento avanzado de Git y experiencia trabajando dentro de development workflows estructurados.
- Experiencia con testing automatizado unitario y de integración.
- Sólido entendimiento de calidad y testability frontend/mobile.
- Experiencia documentando decisiones de arquitectura e implementación frontend/mobile.
- Capacidad de colaborar efectivamente con equipos de backend, QA, DevOps, producto y UX.
Deseables (Nice to Have)
- Experiencia mejorando performance de aplicaciones web, incluyendo bundle size, eficiencia de rendering, lazy loading, caching y Core Web Vitals.
- Experiencia mejorando performance de aplicaciones React Native, incluyendo startup time, eficiencia de rendering, uso de memoria, networking e impacto en batería.
- Experiencia implementando deep links y universal links en aplicaciones React Native.
- Experiencia con testing end-to-end de browser y mobile.
- Entendimiento de conceptos de sistemas distribuidos y procesamiento asincrónico desde la perspectiva del cliente.
- Experiencia manejando operaciones de backend asincrónicas o demoradas en la UI.
- Familiaridad con versionado de APIs y estrategias de backward-compatibility.
- Familiaridad con Infrastructure-as-Code y conceptos de cloud deployment.
- Experiencia con entornos de desarrollo o build basados en Docker.
- Experiencia implementando client-side error e incident reporting.
- Experiencia contribuyendo a decisiones de arquitectura y liderazgo técnico frontend/mobile.
Job Type: Remote
Allowed Country: Argentina
