TimeHammer

This is a personal project I worked on during the first half of 2020. Its goal is to remind employees and simplify the time-tracking process within a company.
The system, called TimeHammerBot, is a Telegram chatbot where employees of a company register by providing their location and usual working schedule. Once configured, the bot sends reminders at the right moment and provides integrated buttons to clock in and out directly from the message, without needing to open another application.
The architecture follows an event-driven model (Event-Driven Architecture). The project is divided into several independent modules, each with a clear responsibility, which communicate by sending messages representing the different events in the system.
The development was done using Quarkus, a Java stack that supports compilation to native code. Quarkus supports both imperative and reactive programming; for this project, a fully reactive approach was chosen.
Message exchange was handled using Kafka, whose Quarkus integration is particularly straightforward.
For production, the system runs in Docker containers, with one image per module. Deployment currently uses docker-compose, although the next planned step is to migrate the solution to a Kubernetes-orchestrated environment.
The project was discontinued after being presented to the company I was working for at the time. Although it was proposed as a replacement for their existing time-tracking system, they ultimately decided not to adopt it.

I am a computer engineer with over 15 years of experience, during which I have worked in a wide variety of environments and taken on different roles throughout the development lifecycle. This journey has allowed me to gain a broad understanding of the industry and to adapt easily to different technical and organizational contexts.
I have worked at large multinational consulting firms, participating in projects of various natures and collaborating with teams distributed across multiple countries. I have also experienced working in an early-stage startup, which gave me the opportunity to be involved in building a product from scratch and to gain firsthand insight into the challenges of the business world.
I am passionate about programming and maintain a continuous learning mindset. For me, the key is not mastering a specific language or framework, but the ability to learn, evolve, and deeply understand problems in order to provide robust solutions. Along this learning path, I have explored areas such as Data Science and Big Data, completing a master’s program that reflects my interest in broadening my horizons and understanding new technological perspectives.