Descripción
Resumen:
Este puesto implica liderar el desarrollo de aplicaciones móviles, garantizar la producción de código seguro y de alta calidad, resolver problemas complejos de forma autónoma y contribuir a la documentación técnica.
Aspectos destacados:
1. Dirigir el desarrollo de aplicaciones móviles y garantizar la producción de código de alta calidad.
2. Resolver de forma autónoma desafíos complejos en el desarrollo de aplicaciones móviles.
3. Fomentar la innovación y la creatividad en el desarrollo de aplicaciones móviles.
**Objetivo del puesto**
El objetivo principal de este puesto es liderar y apoyar la producción de código efectivo basado en los requisitos, aprovechando la experiencia en las mejores prácticas de diseño y desarrollo. Se responsabiliza de garantizar el nivel deseado de calidad y el uso adecuado de las metodologías seleccionadas. Resolver problemas complejos de forma autónoma y contribuir a la documentación técnica de alta calidad.
**Principales responsabilidades**
* Liderar el desarrollo de aplicaciones móviles y apoyar la producción eficaz de código basado en los requisitos, colaborando en su definición.
* Brindar experiencia en prácticas de diseño y desarrollo de vanguardia.
* Garantizar el nivel deseado de calidad y el uso adecuado de metodologías seguras de desarrollo dentro de la organización.
* Asegurar que el código entregado siempre sea funcionalmente correcto.
* Resolver de forma autónoma desafíos complejos en el desarrollo de aplicaciones móviles.
* Contribuir a la documentación técnica de alta calidad.
* Escribir un excelente código basado en los requisitos de los arquitectos y los propietarios de producto.
* Escribir código libre de errores y vulnerabilidades.
* Revisar y proporcionar retroalimentación sobre el código, identificando problemas y convenciones.
* Crear pruebas automatizadas valiosas y significativas.
* Asegurar la viabilidad técnica de los diseños de UI/UX y su integración en la aplicación.
* Optimizar la aplicación para obtener la máxima velocidad y escalabilidad.
* Analizar, depurar y resolver errores complejos.
* Implementar la integración continua y la entrega continua (CI/CD) dentro del ciclo de pruebas.
* Mantener actualizados los estados de las tareas en Jira.
* Colaborar en programación en pareja con otros ingenieros para mejorar la calidad.
* Brindar soporte a los ingenieros de soporte para diagnosticar y resolver problemas.
* Cumplir con los procedimientos y regulaciones de documentación y desarrollo seguro.
* Contribuir activamente a la reducción de la deuda técnica y a los procesos de refactorización.
* Liderar equipos y asumir un rol de liderazgo técnico en los proyectos.
* Fomentar la innovación y la creatividad en el desarrollo de aplicaciones móviles.
* Actuar como mentor de otros desarrolladores, brindando apoyo técnico en la resolución de problemas y desafíos.
* Probar la usabilidad y accesibilidad del producto.
* Mantener actualizada la documentación sobre arquitecturas, procedimientos y herramientas operativas.
* Seguir las directrices de arquitectura de datos sobre cómo recopilar y almacenar información.
* Generar y entregar documentación de diseño y disponibilidad de información al equipo de datos.
* Colaborar y mentorear a los miembros del equipo.
* Proporcionar estimaciones de desarrollo.
* Desarrollar herramientas y scripts para automatizar tareas operativas y procesos de implementación.
* Realizar revisiones de código (calidad, coherencia y mejores prácticas).
* Facilitar la transferencia de conocimiento entre los equipos de operaciones y desarrollo.
* Implementar sistemas de control de versiones para gestionar el código fuente y la infraestructura.
* Colaborar en estrategias efectivas de ramificación y fusión.
* Gestionar y operar sistemas y servicios críticos de producción.
* Garantizar la disponibilidad y el rendimiento del sistema.
* Diagnosticar y resolver problemas de rendimiento y escalabilidad.
* Colaborar con los equipos de SRE para dimensionar correctamente la infraestructura.
* Gestionar y operar las configuraciones de aplicaciones y sistemas para garantizar la coherencia y la reproducibilidad (deseable).
* Utilizar herramientas como CloudFormation y Terraform para gestionar IAC (deseable en AWS).
* Automatizar la creación y configuración de entornos de infraestructura (deseable).
* Promover una cultura de trabajo autónomo fomentando la autorregulación, la responsabilidad y la resolución proactiva de problemas entre los miembros del equipo.
* Actuar como Embajador de la Cultura Spin para fomentar y mantener un entorno laboral positivo, inclusivo y dinámico que se alinee con los valores y la cultura de la empresa.
**Conocimientos y experiencia requeridos**
* Experiencia mínima de 4 a 5 años en desarrollo de aplicaciones móviles.
* Conocimiento profundo de patrones de diseño, arquitectura y principios SOLID.
* Uso avanzado de Git y resolución de conflictos, así como herramientas de CI/CD integradas en el ciclo de pruebas (Github Actions, Sonar Cloud, Bitrise).
* Comprensión de la versión semántica del software.
* Experiencia con TDD y BDD.
* Experiencia demostrable en desarrollo seguro (uso de herramientas SAST, DAST y MAST).
* Experiencia en superaplicaciones, centrada en arquitectura modular, microfrontends y reutilización de componentes y bibliotecas.
* Competencia en el consumo de servicios REST y APIs RESTful.
* Capacidad para liderar equipos y proyectos, asegurando el cumplimiento de plazos y el mantenimiento de estándares de alta calidad.
* Capacidad para adaptarse a cambios rápidos en el entorno laboral y en las prioridades de los proyectos.
* Excelentes habilidades de comunicación y colaboración.
* Disposición para adquirir conocimientos sobre nuevas tecnologías dentro de la pila tecnológica de Spin.
**React Native:**
* Conocimiento profundo de React Native y sus componentes, hooks, hooks personalizados, ciclo de vida de los componentes, comprensión clara del estado y su gestión, HTML, CSS, Flexbox, formularios y bibliotecas de red.
* Conocimiento profundo de JavaScript y TypeScript.
* Conocimiento sólido de Jest.
**Android:**
* Conocimiento profundo de Java y Kotlin.
* Android Studio, Android SDK.
* Gradle.
**iOS:**
* Conocimiento profundo de Swift y Objective-C.
* Xcode, Cocoa Touch.
* CocoaPods.
En Spin estamos comprometidos con construir un lugar de trabajo diverso e inclusivo.
Creemos en la igualdad de oportunidades y promovemos un entorno libre de discriminación por motivos de raza, origen nacional, género, identidad de género, orientación sexual, discapacidad, edad o cualquier otra condición legalmente protegida.