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.
Finalidades, resultados y dimensiones
| FINALIDADES ACCIÓN / FUNCIÓN ¿QUÉ HACE? | ¿DÓNDE LO HACE? | RESULTADOS RESULTADO FINAL ESPERADO ¿PARA QUÉ LO HACE? |
Desarrollar los sistemas, aplicaciones y soluciones de Banco. | Contribuir con el cumplimiento de los requerimientos funcionales, no funcionales y de seguridad determinados en la solución. |
Evaluar el código de pares, así como proponer reglas de inspección de código en ductos CI/CD | Contribuir con el cumplimento de los criterios de aceptación |
Promover y acompañar al equipo en la generación del código limpio en el desarrollo de soluciones, que incluya menos reprocesos, complejidad y mayor estandarización. | Garantizar calidad en el desarrollo, escalabilidad y tiempo de entrega de las soluciones mejorando los estándares del código desarrollado. |
Actividades 1/3
- 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.
Actividades 2/3
Actividades 3/3
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)
Generales
• Cumplir las funciones de Dueño o Coordinador de proceso según sea designado en el mapa y matriz respectivos; con énfasis en la gestión holística de los procesos, que incluye su diseño, optimización, control y mejora continua. En estos roles de dueño o coordinador, la administración del proceso representa una gestión integral del desempeño de su proceso, los recursos habilitantes de los mismos, su permanente ejecución y despliegue de mejora continua y acciones correctivas y preventivas.
• Ejecutar las actividades y tareas señaladas para el Rol de Dueño/ Coordinador de Proceso, que constan en la Metodología de Gestión por Procesos de Banco Pichincha C.A.
• Impulsar la integración e implementación del Sistema de Gestión de Seguridad y Salud y Ambiente. Revisar sus roles y responsabilidades
• Participar como BRIGADISTA DE EMERGENCIA o MIEMBRO del COMITÉ O SUBCOMITÉ PARITARIO DE SEGURIDAD Y SALUD cuando así se lo requiera y garantizar su participación como la de sus dirigidos, si son nombrados.
Competencias