Perfil Técnico para Desarrollador Mobile Senior con Experiencia en Flutter
Descripción del puesto: Buscamos un Desarrollador Mobile Senior con sólida experiencia en el desarrollo de aplicaciones móviles utilizando Flutter. El candidato será responsable de liderar la creación de aplicaciones multiplataforma de alta calidad, colaborando con equipos de diseño, backend y QA. Se espera que el desarrollador tenga una comprensión profunda de los principios de arquitectura de software móvil, rendimiento y optimización, así como la capacidad para implementar soluciones escalables y seguras.
Requisitos Técnicos:
-
Experiencia en Desarrollo Móvil:
- Mínimo 5 años de experiencia en el desarrollo de aplicaciones móviles.
- 3+ años de experiencia con Flutter y aplicaciones publicadas en App Store y Google Play Store.
- Dominio de Dart y profundo conocimiento en el uso de widgets, animaciones y personalización de interfaces de usuario.
- Familiaridad con los patrones de arquitectura móviles como BLoC, Provider, Riverpod, o Redux.
-
Arquitectura de Software y Patrones:
- Experiencia en la definición y diseño de arquitecturas móviles escalables y modulares.
- Conocimiento avanzado de los principios de SOLID, Clean Architecture y MVVM.
- Capacidad para liderar la toma de decisiones técnicas relacionadas con la arquitectura del proyecto y su escalabilidad.
-
Integración con APIs y Servicios Backend:
- Experiencia avanzada en la integración de aplicaciones móviles con APIs RESTful y GraphQL.
- Conocimiento de WebSockets y tecnologías para sincronización en tiempo real.
- Experiencia en la gestión de autenticación y seguridad en aplicaciones móviles, incluyendo OAuth 2.0, JWT y control de acceso.
-
Rendimiento y Optimización:
- Foco en la optimización del rendimiento de aplicaciones móviles, mejorando tiempos de carga, uso de memoria, y eficiencia en el consumo de batería.
- Uso avanzado de herramientas de profiling y debugging en Flutter.
- Implementación de técnicas para mejorar la UX en condiciones de red inestable, como almacenamiento en caché, compresión de datos y gestión de errores en la red.
-
Testing y Calidad de Código:
- Amplia experiencia en la creación de pruebas automatizadas, incluyendo pruebas unitarias, integración y pruebas de UI en Flutter.
- Uso de CI/CD para integración continua y despliegue de aplicaciones móviles con herramientas como GitLab CI, Jenkins, o Bitrise.
- Capacidad para realizar code reviews efectivos y garantizar la calidad del código a través de buenas prácticas de desarrollo.
-
Experiencia en Publicación de Aplicaciones:
- Familiaridad con el ciclo completo de vida de una aplicación móvil, desde el desarrollo hasta la publicación en Google Play Store y Apple App Store.
- Experiencia en el manejo de los requisitos de publicación, certificados, firmas de código y despliegues.
-
UI/UX y Diseño de Interacción:
- Capacidad para trabajar estrechamente con diseñadores para transformar prototipos en experiencias móviles fluidas y atractivas.
- Conocimiento de los principios de diseño de interfaces móviles nativas para iOS y Android.
- Habilidad para implementar responsive design y asegurar la compatibilidad entre diferentes tamaños de pantalla y dispositivos.
-
Herramientas y Control de Versiones:
- Dominio de Git para el control de versiones, flujo de trabajo con ramas y manejo de pull requests.
- Familiaridad con Jira, Trello o herramientas similares de gestión de proyectos ágiles.
-
Habilidades de Liderazgo y Colaboración:
- Capacidad para liderar equipos de desarrollo, proporcionando mentoría y supervisión a otros desarrolladores.
- Habilidad para trabajar en colaboración con equipos multidisciplinarios, incluyendo diseñadores, gerentes de producto, y equipos de backend.
- Fuerte capacidad de comunicación, tanto para explicar decisiones técnicas como para traducir los requisitos del negocio en soluciones técnicas.
Deseables:
- Conocimientos en Firebase, incluyendo Cloud Firestore, Firebase Authentication, y Firebase Cloud Messaging para manejar notificaciones push y almacenamiento en tiempo real.
- Experiencia en App Center, Crashlytics o herramientas similares para el monitoreo de fallos y la analítica de uso.
- Familiaridad con Kotlin para Android y Swift para iOS, lo cual es útil para integraciones nativas puntuales.