Descripción
Resumen:
Buscamos un Ingeniero de Software experimentado para contribuir a las discusiones arquitectónicas, resolver problemas técnicos complejos y brindar liderazgo técnico al equipo de desarrollo.
Aspectos destacados:
1. Contribuir a las discusiones arquitectónicas y tomar decisiones de diseño
2. Resolver problemas técnicos complejos y tomar decisiones críticas
3. Brindar liderazgo técnico y orientación a los miembros junior del equipo
* Competencia en Kotlin y Swift: Comprensión profunda de Kotlin moderno (corutinas/Flow, serialización) y Swift (async/await), incluidos los entornos de ejecución de la plataforma, la gestión de memoria y la concurrencia.
* Marcos nativos de IU: Experiencia en el desarrollo de interfaces de usuario de producción con marcos declarativos — Jetpack Compose en Android y SwiftUI en iOS — incluida la gestión de estado y el ciclo de vida.
* Arquitectura e inyección de dependencias: Experiencia con arquitecturas móviles reactivas y probables (por ejemplo, MVVM, The Composable Architecture) y marcos de inyección de dependencias como Koin.
* Integración de API RESTful: Experiencia diseñando y consumiendo API REST robustas y escalables para integraciones con terceros y consumo interno de la interfaz de usuario (por ejemplo, Retrofit/OkHttp en Android, URLSession en iOS).
* Marcos de pruebas: Competencia en pruebas móviles en toda la pirámide — pruebas unitarias, de integración y de interfaz de usuario — con herramientas como JUnit, Mockito, Robolectric, Espresso y Compose UI test en Android; XCTest y XCUITest en iOS.
* Herramientas móviles y CI/CD: Experiencia con canalizaciones automatizadas de compilación y lanzamiento multiplataforma (por ejemplo, Gradle, Swift Package Manager, Bitrise, Fastlane), idealmente para aplicaciones white-label o multiinquilino.
* Experiencia trabajando con desarrollo asistido por IA (por ejemplo, GitHub Copilot, Claude, Cursor o ChatGPT)
* Conocimiento práctico de la ingeniería de indicaciones dirigida por IA para el desarrollo de aplicaciones.
Responsabilidades y funciones:
* Contribuir a las discusiones arquitectónicas, tomar decisiones de diseño y garantizar que la arquitectura general del software se alinee con los objetivos comerciales y las mejores prácticas del sector.
* Resolver problemas técnicos complejos y tomar decisiones críticas relacionadas con la selección tecnológica, la arquitectura del sistema y la planificación del proyecto.
* Brindar liderazgo técnico y orientación a los miembros junior del equipo de desarrollo.
* Realizar revisiones de código para garantizar la calidad, mantenibilidad y cumplimiento de los estándares de codificación.
Requisitos:
* Título universitario o diploma en Ciencias de la Computación, Ingeniería, campo relacionado o experiencia laboral equivalente.
* 8 o más años de experiencia en desarrollo de software y 3 o más años como Ingeniero de Software con enfoque en el diseño y construcción de sistemas complejos y escalables.
* Comprensión profunda de los principios de ingeniería de software, patrones de diseño, algoritmos y arquitectura de sistemas.
* Capacidad para liderar discusiones técnicas, tomar decisiones críticas y lograr consenso entre los miembros del equipo.
* Experiencia con tecnologías en la nube y arquitectura de microservicios.
**Rango salarial: $125.000 - $135.000 CAD por año.**