Cerrar
Nosotros y terceros seleccionados utilizamos cookies o tecnologías similares con fines técnicos y, con su consentimiento, para otras finalidades según se especifica en la política de cookies y las políticas de privacidad.
Aceptar todas
Aceptar obligatorias
logo de Axon Impact
+
Imagen CEO

Si estás interesado en participar en nuestra primera Encuesta de Compensación Directiva del Sector Financiero en México, regístrate para mandarte el vínculo.

Nombre:
Puesto Actual:
Empresa:
Correo electrónico:
Teléfono:
Acepto las políticas de privacidad y políticas de uso del sitio web
Enviar

Desarrollador iOS Sr

Se revisa en entrevista
Remoto / Home-office
Ciudad de México

Sobre la empresa

Nuestro cliente se dedica en crear aplicaciones móviles para el sector Fintech o Financiero

Sobre el puesto de la vacante

El Desarrollador iOS Senior será el responsable de diseñar, desarrollar y optimizar aplicaciones móviles nativas en la plataforma iOS, asegurando una experiencia de usuario sobresaliente, así como alto rendimiento y seguridad. Esta posición requiere de habilidades avanzadas en Swift y una comprensión profunda del ecosistema de iOS. El desarrollador será clave en la toma de decisiones técnicas y en la mentoría de otros desarrolladores, colaborando con equipos multidisciplinarios en un entorno ágil para ofrecer soluciones innovadoras y escalables.

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

Swift y Objective-C:

Dominio avanzado en Swift, incluyendo su sintaxis moderna y características avanzadas, como programación funcional, closures, protocolos, generics, y control de concurrencia con Grand Central Dispatch (GCD) y Swift Concurrency (async/await).

Conocimiento en Objective-C para mantenimiento de código legado y comprensión de la interoperabilidad entre ambos lenguajes.

Experiencia en patrones de arquitectura como MVVM, VIPER y Clean Architecture, que aseguren una separación clara de responsabilidades y faciliten la escalabilidad y mantenibilidad de las aplicaciones.

Familiaridad con Combine y SwiftUI para estructurar aplicaciones modernas en base a patrones declarativos y reactivos, optimizando el código y simplificando el manejo de estados.

Conocimientos en manejo de datos offline y sincronización con backend, implementando almacenamiento en caché y persistencia de datos

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

Integración de Frameworks y Librerías de Apple:

Profundo conocimiento en UIKit para la creación de interfaces de usuario tradicionales, y SwiftUI para el desarrollo de interfaces más modernas y reactivas.

Experiencia con Core Data para persistencia de datos y Core Animation para crear animaciones fluidas y personalizadas.

Conocimientos en Core Location, MapKit y otros frameworks importantes de Apple para ofrecer experiencias enriquecidas y adaptadas a las necesidades de los usuarios.

Conectividad y Consumo de APIs:

Experiencia avanzada en URLSession y en el consumo de APIs RESTful, así como en la configuración de llamadas de red con un manejo adecuado de errores y caché.

Conocimiento en Alamofire y/o herramientas de redes similares, y experiencia en el manejo asincrónico de datos usando Combine o GCD.

Conocimientos avanzados en cifrado de datos sensibles y en la implementación de protocolos de seguridad para proteger la información en la aplicación y en las comunicaciones de red (uso de HTTPS, certificados, autenticación con JWT).

Familiaridad con prácticas de seguridad recomendadas por OWASP para aplicaciones móviles, incluyendo el manejo seguro de datos y la prevención de amenazas comunes.

Automatización de Pruebas y CI/CD:

Experiencia en la implementación de pruebas unitarias (JUnit, Mockito), pruebas instrumentadas y pruebas UI(Espresso). Familiaridad con frameworks como Robolectric es deseable.

Conocimientos en integración continua (CI/CD) utilizando herramientas como Jenkins, GitLab CI/CD o Bitrise, y en la configuración de pipelines para Android, garantizando la entrega continua de código probado y de alta calidad.

Experiencia en la creación de pruebas unitarias y de integración con XCTest y XCUITest para asegurar la estabilidad de las aplicaciones. Familiaridad con snapshot testing para probar la interfaz de usuario, y continuous integration (CI), usando herramientas como Jenkins, Bitrise, o GitHub Actions para integrar las pruebas en el flujo de desarrollo.

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

Postúlate aquí

Acepto las políticas de privacidad y políticas de uso del sitio web
Enviar