TimeHammer

Este es un proyecto personal en el que estuve trabajando la primera mitad del 2020. Su objetivo es recordar y simplificar proceso de fichaje en una empresa.
El sistema, llamado TimeHammerBot, es un chatbot de Telegram en el que los empleados de una empresa se registran indicando su ubicación y horario de trabajo habitual. Una vez configurado, el bot envía recordatorios en los momentos adecuados y ofrece botones integrados para realizar el fichaje directamente desde el mensaje, sin necesidad de acceder a orta aplicación.
La arquitectura está basada en un modelo orientado a eventos (Event-Driven Architecture). El proyecto se divide en varios módulos independientes, cada uno con una responsabilidad clara, que se comunican mediante el envío de mensajes que representan los distintos eventos del sistema.
Para el desarrollo se utilizó Quarkus, un stack java que permite compilar a código nativo. Quarkus soporta tanto la programación imperativa como la reactiva; para este proyecto se optó por un enfoque totalmente reactivo.
El intercambio de mensajes se gestionó con Kafka, cuya integración con Quarkus es especialmente sencilla.
En cuanto a la ejecución en producción, el sistema se ejecuta en contenedores Docker, con una imagen por cada módulo. Actualmente el despliegue se realiza mediante docker-compose, aunque el siguiente paso previsto es migrar la solución a un entorno orquestado con Kubernetes.
El proyecto fue descontinuado después de presentarlo en la empresa en la que trabajaba entonces. A pesar de la propuesta de sustituir el sistema de fichajes existente, finalmente decidieron no adoptarlo.

Soy ingeniero en informática con más de 15 años de experiencia, durante los cuales he trabajado en entornos muy diversos y he asumido distintos roles dentro del ciclo de vida del desarrollo. Esta trayectoria me ha permitido adquirir una visión amplia del sector y adaptarme con facilidad a diferentes contextos técnicos y organizativos.
He pasado por grandes consultoras multinacionales, participando en proyectos de distinta naturaleza y colaborando con equipos distribuidos en varios países. También he vivido la experiencia de trabajar en una startup en sus primeras etapas, lo que me dio la oportunidad de involucrarme en la creación de un producto desde cero y conocer de cerca los retos del ámbito empresarial.
Me apasiona la programación y mantengo una actitud de aprendizaje continuo. Para mí, lo realmente importante no es dominar un lenguaje o framework concreto, sino la capacidad de aprender, evolucionar y comprender los problemas en profundidad para ofrecer soluciones sólidas. En este camino de aprendizaje he explorado áreas como Data Science y Big Data, estudiando un máster que representó un ejemplo más de mi interés por ampliar horizontes y entender nuevas perspectivas tecnológicas.