Desarrollador Android Sr
Sobre la empresa
Nuestro cliente se dedica en crear aplicaciones móvil para el sector Fintech y Financiero
Sobre el puesto de la vacante
El Desarrollador Android Senior será responsable de diseñar y desarrollar aplicaciones móviles nativas que satisfagan los estándares de rendimiento, accesibilidad y seguridad de la industria. También contribuirá a definir la arquitectura de las aplicaciones y tomará decisiones técnicas que garanticen escalabilidad y mantenibilidad con respecto al codigo que construye. Este rol implica una participación activa en la resolución de problemas complejos y en la mentoría de desarrolladores junior dentro del equipo.
Reto
Desarrollo de Funcionalidades Complejas: Implementar, mantener y mejorar funcionalidades en aplicaciones Android de acuerdo con los requerimientos de negocio y mejores prácticas de desarrollo estandarizadas dentro de INVEX.
Definición de Arquitectura de Proyectos: Participar en la definición de la arquitectura de nuevas aplicaciones y en la mejora de la arquitectura de aplicaciones existentes, garantizando la escalabilidad y mantenibilidad.
Automatización de Pruebas y Calidad de Código: Desarrollar pruebas unitarias y de integración, así como revisar el código de otros desarrolladores para asegurar su calidad y cumplimiento con los estándares.
Mentoría y Soporte Técnico: Asistir a desarrolladores menos experimentados, promoviendo las mejores prácticas y asegurando el cumplimiento de los lineamientos de desarrollo.
Optimización y Seguridad: Mejorar el rendimiento y la seguridad de las aplicaciones, asegurando la protección de los datos sensibles y una experiencia de usuario sin interrupciones.
Colaboración en Ciclo de Vida del Desarrollo: Trabajar en estrecha colaboración con otros equipos técnicos, incluyendo backend, QA, diseño y DevOps, para una integración fluida y un flujo de entrega continuo.
Documentación Técnica y de Usuario: Documentar las decisiones técnicas y mantener la documentación de cada módulo y funcionalidad, asegurando su disponibilidad para todo el equipo.
Responsabilidades
Decisiones Técnicas en Desarrollo de Funcionalidades:
Definir y ajustar en conjunto con su tribu la arquitectura interna de la aplicación en función de los requerimientos específicos, seleccionando patrones de diseño y herramientas adecuadas para optimizar el desarrollo.
Optimización y Mejora Continua:
Decidir sobre estrategias de optimización de rendimiento y eficiencia de la aplicación, incluyendo la selección de algoritmos, patrones de concurrencia y estructuras de datos.
Identificar y mitigar posibles riesgos de seguridad, seleccionando las mejores prácticas para proteger los datos de usuario y las comunicaciones de red.
Pruebas y Control de Calidad:
Decidir sobre el enfoque de pruebas automatizadas y los marcos de pruebas más adecuados para garantizar la estabilidad y calidad de la aplicación.
Definir criterios de aceptación de calidad para cada desarrollo y realizar revisiones de código que cumplan con los estándares de calidad y seguridad.
Mentoría y Apoyo a Otros Desarrolladores:
Tomar decisiones sobre la mejor manera de guiar y apoyar a desarrolladores junior, ayudándoles a resolver problemas técnicos y promover el uso de buenas prácticas en el desarrollo.
Colaboración y Gestión de Cambios en el Proyecto:
Participar en la planificación y priorización de tareas en colaboración con otros equipos, tomando decisiones sobre el enfoque de implementación y realizando ajustes técnicos para adaptarse a los cambios en los requisitos del negocio.
Responsabilidades de Implementación y Cumplimiento de Estándares
Implementación del Ciclo Completo de Desarrollo: El desarrollador es responsable de llevar a cabo todas las etapas del desarrollo de las apps moviles, desde el diseño y desarrollo hasta las pruebas y el despliegue. Además, debe asegurarse de que las apps cumplen con los estándares de calidad, rendimiento y seguridad definidos por la organización.
Cumplimiento de Estándares de Código y Buenas Prácticas: En una fábrica de desarrollo, es fundamental que el desarrollador siga las directrices establecidas para la escritura de código (naming conventions, principios de diseño), asegurando que sea mantenible y comprensible por otros desarrolladores.
Colaboración Interdisciplinaria: Aunque no tome decisiones estratégicas, el desarrollador tiene la responsabilidad de colaborar estrechamente con otros equipos, como DevOps, QA y frontend. Esto incluye coordinarse en aspectos como el despliegue, la seguridad y la integración de servicios.
Responsabilidad en Metodologías Ágiles
Participación en el Ciclo Ágil de Desarrollo (Scrum/Kanban): El desarrollador participa activamente en eventos ágiles como planning, daily stand-ups, y retrospectives. En estos espacios, es responsable de comunicar el progreso de sus tareas, identificar bloqueos y estimar tiempos de entrega.
Auto-Organización y Gestión de Tareas: En un entorno ágil, el desarrollador debe gestionar sus tareas de forma autónoma y adaptarse a los cambios en los requisitos del proyecto, lo cual requiere habilidades para priorizar y reordenar el trabajo según las necesidades del equipo.
Feedback Continuo y Mejora: Es responsable de proporcionar feedback continuo sobre los desafíos técnicos o mejoras en el proceso, apoyando a la fábrica de desarrollo a iterar y refinar los procesos de trabajo para optimizar la eficiencia.
Responsabilidad en la Calidad del Producto
Responsabilidad de Calidad del Código y Pruebas: El desarrollador tiene la responsabilidad de asegurar que su código esté bien probado y cumpla con los criterios de calidad antes de integrarse al pipeline de producción. Esto incluye realizar pruebas unitarias, de integración y, cuando sea necesario, colaborar con el equipo de QA en pruebas de carga y de seguridad.
Resolución de Incidentes y Mantenimiento de apps: Debe estar disponible para resolver incidentes que afecten el rendimiento o la seguridad de las apps en producción, tomando decisiones de contingencia cuando sea necesario. Esto implica tener conocimientos en monitoreo y en logging para identificar problemas rápidamente y aplicar correcciones efectivas.
Liderazgo Técnico (en menor escala)
Mentoría a Desarrolladores Junior: Aunque no tenga un rol de liderazgo formal, puede asumir la responsabilidad de guiar y apoyar a desarrolladores con menos experiencia, especialmente en temas específicos de Java, Kotlin, Android o prácticas de desarrollo en apps.
Promotor de Buenas Prácticas y Mejora Continua: En un entorno de fábrica de desarrollo, el desarrollador Android Sr también puede aportar ideas y mejoras al proceso de desarrollo o en las prácticas de calidad, apoyando la estandarización de procesos y promoviendo la adopción de mejores prácticas.
Requerimiento de vacante
Experiencia
de 4 a 5 años
Habilidades y aptitudes
Dominio avanzado de Kotlin (preferentemente) y Java para el desarrollo de aplicaciones Android. Debe estar familiarizado con las últimas actualizaciones y características de ambos lenguajes.
Conocimiento en programación orientada a objetos (POO), patrones de diseño y principios SOLID, garantizando código modular, limpio y mantenible.
Dominio en patrones de arquitectura modernos como MVVM (Model-View-ViewModel) y Clean Architecture. Conocimiento en la separación de capas y dependencias para asegurar aplicaciones escalables y fáciles de probar.
Familiaridad con Jetpack Architecture Components (LiveData, ViewModel, Room, WorkManager, Navigation), que permiten estructurar aplicaciones Android de manera robusta y mantenerlas actualizadas con las mejores prácticas de Google.
Conocimientos avanzados en XML layouts y composición de interfaces de usuario en Android. Experiencia en el uso de Jetpack Compose es un plus, ya que representa el futuro del desarrollo de interfaces en Android.
Conocimiento en material design y capacidad para implementar componentes de UI siguiendo los estándares de Google.
Conocimientos en manejo de datos offline y sincronización con backend, implementando almacenamiento en caché y persistencia de datos (Room o SQLite).
Experiencia en la persistencia de datos localmente en el dispositivo utilizando bases de datos como Room o SQLite y en la optimización del acceso a datos para aplicaciones con grandes volúmenes de información.
Qué te ofrecemos
Salario: Se revisa en entrevista
Modalidad: Remoto / Home-office
Lugar de trabajo: Ciudad de México
Otros beneficios
- Contrato directo con el cliente.
- Modelo 90% remoto
- Prestaciones de ley.
- Horario de Lunes a Viernes de 9 am a 7 pm , con dos horas de comida