INGENIERO SOFTWARE SR - QUITO
Propósito general
Desarrollar, probar, mejorar, innovar las soluciones/aplicaciones de Banco, cumpliendo los estándares/lineamientos y plazos establecidos, para proveer mejora continua en el "Ciclo de Desarrollo de Software“ de acuerdo a políticas, procedimientos y lineamientos de su línea de supervisión.
Actividades
- Desarrollar, evaluar y mejorar los sistemas, aplicaciones y soluciones de Banco.
- Realizar evaluación/Revisión de código en pares.
- Proponer reglas de revisión/inspección de calidad de código.
- Acompañar al equipo en la generación de código de calidad, con el fin que se apliquen las mejoras practicas existentes en industria y las definidas por los COEs/Chapters.
- Definir, implementar pruebas de calidad temprana, asi como automatizaciones a las mismas.
- Definir, sugerir e implementar patrones de arquitectura de software en las soluciones.
- Proporcionar sugerencias a las arquitecturas de soluciones propuestas por los Arquitectos.
- Tener un claro entendimiento de las métricas del "Ciclo de Desarrollo de Software" y proponer/ejecutar planes para mejorar las mismas.
- Cumplir con los criterios de aceptación a fin de contribuir con el cumplimiento de los requerimientos funcionales, no funcionales, tiempo de entrega de las soluciones.
- Implementar soluciones de acuerdo a políticas, procedimientos, lineamientos y estándares definidos por los Respectivos COEs, Chapters, Áreas.
- Asegurar que la aplicación/solución pase todas las etapas del "Ciclo de Desarrollo de Software" y llegue al ambiente productivo.
- Apoyar en la gestión de impedimentos y bloqueantes.
- Proponer soluciones innovadoras para mejorar el "Ciclo de Desarrollo de Software", tomando como referencia prácticas y productos de industria.
- Resolver incidencias y corregir defectos reportados en ambientes No-Productivos y Productivos.
- Asegurar y cuestionar la correcta definición/estimación/refinamiento de Historias de Usuario.
- Generar la documentación técnica de desarrollo definida por el Chapter.
Educación
Título profesional Ingeniería de sistemas o ciencias de la computación.
Certificaciones en ámbito de Tecnología de Información
Experiencia
Mayor a 5 años de experiencia en la tecnología definida
Back: Java. y/o NET
Front: Next.js, Angular, ReactJS o React Native
Sólida experiencia en el uso de dockers y kubernetes
Solida en prácticas y disciplina de ingeniería de software (paradigmas de ingeniería, patrones de diseño, calidad de código)
Conocimiento
Conocimientos de JIRA y Confluence
Conocimientos y trabajo con Scrum y Kanban
Slicing, estimación de Historias de Usuario
Técnicas de estimación/refinamiento de Historias de Usuario (INVEST)
Desarrollo en Pares y Revisión de código
Desarrollo en Tecnologías definidas por el Chapter
Conocimiento y trabajo con Bases de datos Relacionales y no relacionales
Conocimientos de principios SOLID, teóricos y en implementaciones
Conocimientos en Programación Orientada a Objetos teóricos y en implementación
Conocimientos teóricos y prácticos en programación funcional
Conocimiento y aplicación de desarrollo Basado en Pruebas (TDD)
Patrones de Diseño para desarrollo de Software
Patrones de Arquitectura de Software (Ej: MVC, Hexagonal, Tradicional)
Patrones de Arquitectura de aplicaciones (Microservicios)
Implementación de Servicios Rest
Conocimientos de tipos de Pruebas (pirámide de pruebas)
Automatización de APIS
Pruebas de Rendimiento, Carga, Estrés
Generación de pruebas unitarias, mutación, integración
Conocimiento y Trabajo con Contenedores (Dockers)
Conocimiento teórico, utilidad, casos de uso de Kubernetes
Implementación de soluciones con Kubernetes (Escalabilidad, balanceo, Monitoreo)
Competencias