Trabajé en múltiples proyectos con duraciones que oscilaron entre 3 y 12 meses para destacadas marcas europeas como AkzoNobel y Schneider Electric. Frecuentemente asumí el rol de Desarrollador Líder Frontend y ocasionalmente fui el único desarrollador activo en un proyecto.
Mis responsabilidades incluían la estimación de proyectos, garantizar la entrega exitosa de los proyectos dentro de los plazos acordados, implementar y mantener herramientas internas de la empresa, realizar entrevistas, incorporar y mentorizar a otros ingenieros, y prototipar nuevas oportunidades de negocio.
Un proyecto destacado fue el Constructor de Especificaciones, una herramienta utilizada para componer documentos de especificación técnica. Los clientes podían definir opciones y contenido del documento a través de una hoja de cálculo de Excel, completa con reglas para evitar la selección de opciones conflictivas. Diseñé este protocolo de comunicación para simplificar la personalización de las herramientas por parte de los clientes, y se actualizaba con una nueva versión de la hoja de cálculo cada dos semanas.
Diseñé, desarrollé e implementé diversas herramientas internas y paquetes para su reutilización en nuestros proyectos, incluyendo:
- Un paquete de .NET Core que contenía utilidades recurrentes como autenticación y acceso a la base de datos.
- Una Biblioteca de Componentes de Interfaz de Usuario en AngularJS, Angular 2+ y React.
- Configuraciones reutilizables de CI para la compilación de proyectos utilizando GitHub Actions.
- Un sistema de despliegue adaptable a todos nuestros proyectos que creaba contenedores Docker desplegados en múltiples clusters de Kubernetes, construido utilizando Bash.
Quiero destacar el último logro por dos razones: en primer lugar, antes de este esfuerzo, cada proyecto tenía su propio sistema de despliegue personalizado, lo que se estaba volviendo cada vez más difícil de mantener. En segundo lugar, al principio no tenía experiencia previa con Kubernetes, pero en pocas semanas creé un sistema de despliegue personalizable que garantizaba el funcionamiento ininterrumpido de la aplicación incluso durante las actualizaciones diarias.