Perfil de carrera
Ingeniero de Software con amplia experiencia en Java/Spring, Python, Flutter y SQL, y un sólido dominio del desarrollo Full Stack y DevOps. Me destaco en tareas complejas de backend, desde la gestión de bases de datos hasta diseño de APIs, con un enfoque en la creación de sistemas fiables y eficientes. Con más de 10 años de experiencia, soy un colaborador en equipo, conocido por mi naturaleza trabajadora, habilidades para resolver problemas y gran atención al detalle. Aunque mi especialidad es el desarrollo backend, también soy capaz de contribuir en el desarrollo frontend y de aplicaciones móviles cuando es necesario. Me apasiona el Open Source y disfruto colaborando con equipos.
Experiencia
En Abalia, he estado profundamente involucrado en el desarrollo y mantenimiento de aplicaciones de gran escala. Mi principal proyecto, Elser, es una aplicación web integral para la gestión de recursos humanos y activos, desarrollada con Java usando Spring y Spring Boot en el backend, y JSF, PrimeFaces y JoinFaces en el frontend. Esta plataforma gestiona todo, desde el control de asistencia y gestión de ausencias, hasta la selección de candidatos y externalización de personal. Es una aplicación robusta y en constante evolución, incorporando nuevas funcionalidades de forma continua.
En noviembre de 2024 fui promovido y asumí un puesto de nivel senior con mayores responsabilidades. Actualmente lidero la dirección técnica y la gestión de ingeniería de los proyectos en los que participo, incluyendo Elser, supervisando tanto los equipos de backend como de frontend, y continuando activamente con el desarrollo de código. Además de programar, gestiono los servicios en la nube, tareas de DevOps y despliegues en Google Cloud, utilizando Kubernetes para la orquestación.
También estoy a cargo de los procesos de ingeniería de software en todos nuestros proyectos: gestión de issues en GitHub, revisión de pull requests, validación de código y supervisión de diseños de software, roadmaps de proyecto y ciclos de versiones. Mis responsabilidades combinan las de un Desarrollador Senior, Ingeniero de Software y Líder Técnico de Proyecto, equilibrando desarrollo práctico con gestión de proyectos y liderazgo técnico.
En paralelo, continúo desarrollando una aplicación alternativa a Elser, con un backend en Spring Boot y un frontend en Angular. Es un proyecto greenfield creado desde cero, diseñado para ser mobile-friendly y compatible con modo reactivo.
También desarrollé la versión móvil de Elser usando Flutter, que replica gran parte de la funcionalidad de la aplicación web y actualmente se encuentra en fase beta en Google Play.
Otro proyecto importante que lidero es Hosteleo, una plataforma de búsqueda de empleo especializada en los sectores de hostelería y turismo. Diseñé e implementé todo el backend usando Java, Spring Boot y PostgreSQL, integrando servicios de terceros como Stripe para pagos, SendGrid para correos electrónicos y Google Cloud para alojamiento de archivos de usuario. Hosteleo da servicio a cientos de miles de usuarios y gestiona publicidad mediante Google Ads.
Adicionalmente, gestiono el control de calidad y pruebas automatizadas de la aplicación web Vission usando Python y Selenium, y lidero los procesos de QA y testing en Elser, utilizando Playwright y Pytest con Python. Además de esto, me encargo de las operaciones DevOps de Elser y Hosteleo, así como del proceso de publicación de la versión móvil de Elser. Mis responsabilidades incluyen también proyectos menores como migraciones de bases de datos de MySQL a PostgreSQL y la administración de servicios WordPress tanto para Hosteleo como para Abalia.
En la Universidad de Ciencias Médicas de Sancti Spíritus fui responsable de la programación, la administración de redes y las tareas de DevOps para los servicios en la nube de la universidad. Trabajé de forma intensiva con Docker y Kubernetes para gestionar y desplegar estos servicios. Mi labor incluyó el desarrollo de herramientas en Python y Perl para apoyar la administración de la red y los servicios, así como la creación de aplicaciones como una biblioteca virtual y un sistema de revistas digitales, utilizando Java, Python, Perl, Bash y PHP.
Colaboré estrechamente con los equipos de ingeniería para integrar bibliotecas personalizadas y repositorios digitales en los sistemas existentes. Además, definí las especificaciones de red para optimizar el rendimiento, gestioné actualizaciones de los sistemas y velé por la integridad de los datos. También me encargué de mantener la seguridad de los sistemas mediante la instalación de parches y actualizaciones necesarias, garantizando así la fiabilidad y seguridad de los servicios.
En la Universidad de Sancti Spíritus formé parte del equipo de desarrollo de aplicaciones, asumiendo además responsabilidades dentro del grupo de redes y tecnologías de la información. Desarrollé y administré varias aplicaciones clave, incluyendo el repositorio de tesis de la universidad, el cliente de correo web interno y las revistas digitales para publicaciones académicas.
Mi trabajo se extendió a la gestión de servicios esenciales como la red universitaria, el proxy de internet y los servidores de correo, todos alojados en sistemas Linux y Proxmox, los cuales administré en su totalidad.
Desarrollé software utilizando lenguajes como Java, Bash, Python, PHP, Perl y C, con enfoque tanto en el desarrollo de aplicaciones como en la seguridad de la red y los servicios. También me encargué de la instalación física y configuración de servidores cuando fue necesario. Colaboré estrechamente con los equipos de desarrollo y pruebas para construir aplicaciones seguras y de alto rendimiento, documentando además los procesos de monitoreo, recuperación y optimización de los sistemas.
Adicionalmente, impartí cursos de programación y dirigí talleres de programación competitiva, combinando la programación práctica con fundamentos teóricos para apoyar a los estudiantes en el desarrollo de sus habilidades. Mi labor se centró en garantizar operaciones confiables, seguras y eficientes, tanto a nivel de software como de infraestructura.
Certificaciones
Cubre temas como obtener datos desde una API y procesarlos utilizando parámetros o paginación.
Cubre temas como optimización de consultas, modelado de datos, creación de índices, funciones de ventana y pivots en SQL.
Cubre temas como resolución de problemas y SQL.
Prueba de aptitud en Java. Se alcanzó un nivel avanzado, A2.
Cubre temas como resolución de problemas, SQL y API REST.
Cubre temas básicos del lenguaje Java como clases, estructuras de datos, herencia, gestión de excepciones, entre otros. Se espera dominio en Java 7 o Java 8.
Prueba de aptitud en JavaScript. Se alcanzó un nivel medio, M2.
Prueba de aptitud en MySQL. Se alcanzó un nivel medio, M2.
Cubre temas de estructuras de datos (como HashMaps, Stacks y Queues) y algoritmos (como soluciones óptimas).
Cubre temas básicos de estructuras de datos (como Arrays y Strings) y algoritmos (como ordenamiento y búsqueda).
Prueba de aptitud en Python. Se alcanzó un nivel avanzado, A2.
Cubre temas como tipos escalares, operadores y flujo de control, cadenas de texto, colecciones e iteración, modularidad, objetos, tipos y clases.
Incluye operaciones JOIN, UNION y subconsultas complejas.
Incluye consultas simples, relaciones y funciones agregadas.
Contribuciones OSS
Aquí tienes una lista de algunas contribuciones a proyectos de código abierto (OSS) y proyectos personales open-source: