Projects
How I love to spend my time when I'm not working
DotLine

A project developed and presented as my degree thesis: an instant messaging web application designed with particular attention to privacy and personal data protection, with native support for end-to-end encryption. It allows users to exchange text messages, attachments and various types of multimedia content, including geographic locations, voice messages and static or animated stickers. Conversation contents are protected by AES-256-based end-to-end encryption and are accessible exclusively to the participants. Messages are also synchronized across connected clients, even in real time. The architecture consists of a client built with React and a server based on Node.js. Both are publicly distributed as Docker images. Application data, excluding attached files, is stored using Apache Cassandra.
Lala.js
Lala.js is an MVC framework under development, designed for building web applications with JavaScript and Node.js, partially inspired by Express. Although the project is not yet complete, the implemented features are operational and form the foundation of a structured development environment, designed to simplify the creation of robust and maintainable applications. It is the most ambitious personal project I have ever built and addresses several aspects of software engineering, from architecture design to the from-scratch implementation of fundamental HTTP request handling mechanisms, including routing and streaming body parsing. It also includes support for ranged requests and caching mechanisms, as well as integration with external systems such as databases and cache systems, with attention to maintainability, testing and documentation.
Kitsune-chan
A Discord bot developed to introduce advanced server management and customization features. The project was later made open source, allowing anyone to clone the repository, customize it and deploy their own instance. Planned features include a music player, server backup and restore tools, support for custom emojis for users without Discord Nitro, member and channel counters, and additional management tools. The project also includes a React-based web GUI for server administration and settings configuration, with multilingual support for both the web interface and the bot. The architecture is based on Node.js and the Lala.js framework, with MongoDB for data persistence and Redis for caching. Deployment is designed for Linux environments via Docker containers, with the goal of making the bot publicly accessible and easy to integrate into Discord servers.
ShutterCam

A photo-sharing social network, developed with the goal of deepening my knowledge of handling large volumes of data and designing scalable architectures. The project was presented as part of my diploma thesis, with particular focus on the system's architecture and structure. It is the first project in which I combined PHP with Apache Cassandra, a distributed NoSQL database, to explore alternative approaches to large-scale data management and persistence. The project is currently incomplete and no longer maintained, having been set aside to focus on other activities. It nevertheless remains an important learning experience in the field of distributed databases and scalable system design.
Multi-Tenant Email Delivery Microservice
An enterprise multi-tenant microservice for configuring and sending e-mails, for which I handled most of the architecture, technical decisions and code structure, and defined the tasks and UML diagrams, coordinating the team and code reviews. It exposes server-to-server REST APIs protected by OAuth2 and supports SMTP, Microsoft Graph and AWS SES, with asynchronous sending via Apache Pulsar, priority queues, automatic retries and handling of webhooks and anomalies. It integrates multi-tenancy with Hibernate and PostgreSQL RLS, AES-256 encryption of credentials and ECDSA signing of JWTs and webhooks. It uses Elasticsearch and Amazon S3 for messages and attachments. The project includes automated tests with a minimum coverage of 90%, CI/CD, static analysis, Flyway migrations, GraalVM native compilation, Distroless Docker containers and Sentry monitoring. I also fully developed a reusable PHP/Laravel module for integration with company applications.
Shared Java Microservices Core Platform
A shared core platform, distributed through GitLab's private Maven registry, which provides the architectural and functional foundations of the company's Java microservices. I contributed directly to its development and handled most of the architectural design, defining the code structure, components and main technical choices. I was also responsible for activity planning, defining tasks and UML diagrams, team coordination and code reviews. The platform centralizes common features such as OAuth2 authentication and authorization with Spring Security, multi-tenancy via Hibernate and PostgreSQL RLS, webhook and system notification management, credential protection with AES-256 encryption and Argon2 hashing, HTTP exception handling and Sentry integration. It also supports JWT extension through configurable Beans and the publication of public keys in JWK format via .well-known endpoints, with SQL migrations managed through Flyway. Software quality is ensured by CI/CD pipelines with automated tests, coverage measurement with JaCoCo, static analysis with PMD and SpotBugs, automatic formatting with Spotless and native compilation via GraalVM Native.
Note: for confidentiality reasons, the descriptions of work projects are approximate and do not include real names or implementation details.
Porcellino

Manage your personal finances with Porcellino, a web app for tracking income and expenses. Organize transactions into separate wallets, manage multiple currencies and keep your financial situation under control thanks to statistics and interactive charts in the dashboard. The application offers an intuitive interface for recording financial movements, organizing resources and analyzing spending habits, with the goal of making money management simple and accessible.
Yummy

A web app for managing restaurant operations, developed as my first project based on the Spring Framework. The application offers features for managing tables, customers and their orders, as well as creating and organizing menus, divided into sections and dishes. It also includes a public interface for customers, accessible from the tables, which allows them to browse the assigned menu and send orders directly through the application.
Diesis
A CLI tool developed to automate the cataloging of music files, born from the need to rebuild my collection after losing my entire iTunes library. The tool automatically retrieves track metadata, cover art and lyrics from the Internet, simplifying the organization of the music library. Currently available only via CLI, the project plans a future graphical interface to make it more accessible.
GeoIP CLI
A minimal CLI tool developed in Crystal to obtain information about the geographic location associated with an IP address. It allows you to specify an IP or automatically detect that of the machine in use, querying external APIs to retrieve geographic details. The project represents my first experiment with the Crystal programming language, an opportunity to explore its syntax and features while deepening my knowledge of integration with external HTTP APIs.
Email address validator
A library developed to verify the validity of e-mail addresses and the existence of their recipients through online checks. The process verifies the existence of the provider and attempts to confirm that the address is actually recognized by the mail server. The project was implemented in two versions, JavaScript for Node.js and PHP, and publicly distributed via NPM and Packagist, making it easy to integrate into applications built with either ecosystem.
Password toolbox
A library developed to assess password strength using several criteria, including alphabetic complexity, character composition and checking for presence in dictionaries of weak and commonly used passwords, often exploited in brute-force attacks. The package is available in two implementations, JavaScript and PHP, publicly distributed via NPM and Packagist to make it easy to integrate into applications in the respective ecosystems.
Pigeon
Pigeon is an e-mail-style messaging application, built from scratch in Java and managed with Gradle. The project includes a desktop client built with JavaFX and a dedicated server for managing and storing messages and other data via the file system. The server can be deployed and run inside a Docker container, simplifying installation and management.
jBoard
jBoard is a web application for managing lessons, developed with Vue.js, Java and Java Servlets. Administrators can manage teachers, courses and lessons, while users can browse the offering and book lessons. The project also includes a native Android application developed entirely in Java, integrated with the platform's services.
Filetto
Filetto is a command-line game in which two or more opponents compete on an NxN grid. Matches can be configured with an arbitrary number of players, who can be human or computer-controlled. The project also called for a real-time online multiplayer mode based on WebSocket, which was not implemented.
Toy Language
A rudimentary compiler for a LISP-like programming language. It translates source code into JVM bytecode, allowing it to be executed through the Java Virtual Machine. The project was created to gain a deeper understanding of how lexical analysis, parsing and the fundamental phases of compilation work.