Experience

  1. Sept 2025 — Now

    AI Software Engineer · Reply

    • AI
    • RAG
    • LLMs
    • OpenShift
    • MongoDB
  2. Sept 2024 — Dec 2024

    AI Engineer · HIT × Systra

    • AI
    • Big Data
    • Deep Learning
  3. Sept 2022 — Sept 2023

    Software Engineer · Pirelli

    • Python
    • SQL
    • AWS
    • PostgreSQL
    • Angular
    • Docker
    • Qlik Sense

Projects

  1. Meeting Pilot

    Local-first meeting notes for macOS. It detects a call, records it with a live transcript and notes, publishes them to Notion or Obsidian, and lets you ask questions about the meeting.

    Source on GitHub
    • Swift
    • Python
    • LLMs
    • WebGL
  2. Music AI

    Agentic RAG for audio retrieval · 2025

    Bridges the gap between technical audio metadata and the words producers use ("punchy", "warm") with LLM-written captions, CLAP embeddings and an agentic RAG assistant.

    • LLMs
    • CLAP
    • Agentic RAG
    • Qdrant
    • MongoDB
  3. Healthcare AI Virtual Assistant

    Generative AI · 2025

    A RAG-based virtual assistant for healthcare that answers patient questions, gives basic medical advice, recommends doctors and manages appointments.

    • GenAI
    • RAG
    • FastAPI
    • PostgreSQL
    • pgvector
    • Ollama
    • Angular 17
  4. Dynamic Pressure Regulation in Pump Systems

    Industrial AI Challenge · Systra and HIT

    AI for managing hydraulic pumps during grouting on large civil-engineering sites, with GRU models and an experimental offline reinforcement learning approach.

    • Deep Learning
    • Reinforcement Learning
    • PyTorch
    • MongoDB
  5. Retina Vessel Segmentation and Generative Models

    Deep Learning for 3D Medical Imaging · University of Twente · 2025

    Segments retinal blood vessels with a U-Net and Swin Transformer ensemble, then synthesizes extra training images with diffusion models and SPADE.

    • Deep Learning
    • Segmentation
    • Generative Models
    • PyTorch
    • MONAI
  6. Fake Image Detectors and Adversarial Attacks

    Computer Vision · University of Trento · 2024

    Tests how robust AI-generated-image detectors are against Stable Diffusion "laundering" attacks, using a two-step real, laundered and synthetic classifier.

    • Deep Learning
    • Generative Models
    • PyTorch
    • MONAI
  7. Urban Waste Management

    Big Data Technologies · University of Trento · 2024

    A big-data pipeline and live dashboard for city waste bins: Kafka ingestion, Spark predictions and route optimization, served to an Angular dashboard.

    • Data Engineering
    • Kafka
    • Spark
    • MongoDB
    • Redis
    • SQL
    • Docker
    • Angular 17
  8. Dice Wars AI Player

    Machine Learning · University of Twente · 2025

    A Deep Q-Learning agent that learns to play the board game Dice Wars.

    • Reinforcement Learning
    • Deep Learning
    • PyTorch
  9. Process Capability for Scrap Reduction

    Bachelor's thesis · Pirelli · University of Turin · 2022

    A sensor-data pipeline and Qlik Sense quality dashboard built to reduce scrap in Pirelli's tyre production.

    • Python
    • Qlik Sense
    • JMP
    • AWS
    • Statistical Analysis
  10. Reddit Analysis of Character.ai

    Computational Social Science · University of Trento · 2024

    Topic modeling and a semantic network of Reddit discussions about Character.ai, with a focus on therapy-related conversations.

    • NLP
    • Topic Modeling
    • Deep Learning
    • PyTorch
  11. Data Mining for Referral Advice

    Data Science · University of Twente · 2025

    Data mining on a real-world spine-center dataset to predict the right treatment referral for low back pain from patient questionnaires, with fewer questions.

    • Machine Learning
    • SQL
    • scikit-learn
  12. Departmental Impact on Collaboration Networks

    Advanced Social Network Analysis · University of Trento · 2024

    How department shapes scientists' roles in a collaboration network, compared through beta and betweenness centrality.

    • R
    • Graphs
    • Network Analysis
  13. Choice-Based Conjoint Analysis on Smartphones

    Customer and Business Analytics · University of Trento · 2024

    Which smartphone attributes drive consumer choices, with a focus on the leading Chinese manufacturers.

    • R
    • Conjoint Analysis
  14. Surgical Video Phase Recognition

    Advanced Computer Vision and Pattern Recognition · University of Twente · 2025

    Recognizing the phases of a surgery from video, for the Advanced Computer Vision and Pattern Recognition course.

    • Computer Vision
  15. Process Mining

    Process Mining · University of Twente

    Process mining coursework using PM4Py.

    • PM4Py

Hobbies

  • Photography Street and travel, mostly natural light.

Reply · Sept 2025 — Now

AI Software Engineer

  • Full-stack: scalable web and software applications across 10 distinct projects for 2 major banks.
  • AI integration: brought AI into operational workflows, developing conversational chatbots, RAG pipelines and automated document-processing tools for risk analysis.
  • Framework architecture: primary technical point of contact for the proprietary AI framework.
  • Technical leadership: represented the company as a technical mentor at two industry hackathons, guiding teams building AI-driven solutions.

Visit Reply

HIT × Systra · Sept 2024 — Dec 2024

AI Engineer

Developed an AI solution for dynamic pressure regulation in pump systems, in collaboration with Systra for the Industrial AI Challenge.

Visit HIT × SystraSee the project

Pirelli · Sept 2022 — Sept 2023

Software Engineer

  • ETL: data collection, analysis processes and pipeline creation (Python, SQL and AWS).
  • Databases: creation, development and management of database systems (PostgreSQL).
  • Web development: creation, development and management of web apps (Angular, Git, Docker, HTML/JS/CSS).
  • BI: business intelligence with Qlik Sense for data visualization.

Visit PirelliSee the project

Agentic RAG for audio retrieval · 2025

Music AI

In music production there's a semantic gap between technical, machine-readable metadata and the subjective, perceptual language people use to describe sound, like "punchy" or "warm". This project bridges that gap with a semantically enriched dataset, large language models and Contrastive Language-Audio Pretraining (CLAP), combined into an audio-native agentic RAG assistant.

Architecture

  • Data layer: raw audio samples are ingested with a matrix selection strategy that balances instrument classes and perceptual descriptors, and stored in MongoDB with GridFS.
  • Semantic enrichment: an LLM turns noisy user tags into natural-language captions, and a CLAP-based check compares each caption with the audio to catch hallucinations.
  • Dual-vector indexing: validated text vectors (1536-d) and CLAP audio vectors (512-d) are stored in Qdrant for similarity search.
  • Orchestration: specialized agents classify intent, retrieve by text or by sound, enrich labels from acoustic neighbors (reverse RAG) and turn results into chat responses with audio previews.

Results

  • Text-to-audio search: replacing raw tags with LLM-written captions raised nDCG@5 from 0.5851 to 0.8460.
  • Audio-to-audio search: CLAP finds acoustically coherent neighbors even when the human tags disagree.

Source on GitHub

Generative AI · 2025

Healthcare AI Virtual Assistant

An AI virtual assistant for the healthcare sector that can answer complex patient questions, give basic medical advice, manage appointments, and understand and generate contextual responses accurately and naturally.

Stack

  • Database: PostgreSQL for patients, doctors, appointments and chats; pgvector for the RAG embeddings.
  • Backend: FastAPI, exposing REST APIs for all CRUD operations on patients, doctors, appointments and chats.
  • Frontend: Angular 17, for talking to the assistant, managing appointments and browsing chat history.

Features

  • Chat with RAG for contextual answers, using the MedQuAD and MIMIC-III datasets together.
  • Doctor recommendation once the patient's needs are understood, with free-slot proposals and booking.
  • Follow-up suggestions related to the user's previous question.
  • Intent detection (booking, viewing history and so on) to respond accordingly.
  • Sentiment analysis of each question to set the tone and type of the response.
  • Login and registration, a list of bookings, and access to past conversations.

Source on GitHub

Industrial AI Challenge · Systra and HIT

Dynamic Pressure Regulation in Pump Systems

Part of the Industrial AI Challenge. Using real-world data from construction sites, we explored how AI can improve the management of hydraulic pumps during grouting, a critical process in large-scale civil engineering projects.

We developed two AI-based approaches: Gated Recurrent Units (GRUs) and an experimental offline reinforcement learning model.

I mainly worked on the supervised learning models (GRU and LSTM) and on data preprocessing and exploration.

This project is under NDA, so there's no public repository.

Deep Learning for 3D Medical Imaging · University of Twente · 2025

Retina Vessel Segmentation and Generative Models

Retinal vessel segmentation helps diagnose retinal diseases. This project first applies a series of deep learning models to segment the vessels, then uses generative models to synthesize additional image data. It's validated on the public DRIVE and STARE datasets.

  • Preprocessing: resolution enhancement and augmentations, including CLAHE and Gabor filtering.
  • Segmentation: an ensemble of U-Net and Swin Transformer models.
  • Generative modeling: image synthesis with diffusion models combined with SPADE normalization.

Results

Dice coefficient and pixel-wise accuracy are logged alongside the ground-truth masks, and the predicted masks closely resemble them. SwinTNet performs more consistently over time than U-Net with dropout. Because DRIVE is small, adding STARE improved performance: the best Mean Dice comes from the U-Net Dropout and SwinTNet ensemble trained on both datasets.

Generative model

  • SPADE: a normalization layer that uses the segmentation mask to modulate feature maps, preserving per-pixel semantic information.
  • Latent diffusion: an autoencoder compresses images into a latent space, and a diffusion model is trained on those latents.
  • Semantic diffusion: the noisy latent goes into a U-Net encoder and the semantic layout into the decoder through multi-layer SPADE, using the mask better than simple concatenation.

Source on GitHub

Computer Vision · University of Trento · 2024

Fake Image Detectors and Adversarial Attacks

The goal was to explore the adversarial robustness of detectors for AI-generated images.

We used the two-step architecture from S. Mandelli, P. Bestagini and S. Tubaro, "When synthetic traces hide real content: Analysis of stable diffusion image laundering". The first step separates real images from synthetic ones (fully generated and laundered); the second separates fully synthetic images from laundered ones.

  • Verify the Stable Diffusion laundering attack using the MMLAB TrueFake dataset.
  • Explore other ways to run the laundering attack.
  • Test the robustness of the detector proposed in the paper.

Source on GitHub

Big Data Technologies · University of Trento · 2024

Urban Waste Management

A data-notifier collects data from several sources: Australian bin and weather APIs, plus a synthetic generator that simulates pedestrian counts from historical data. It sends the data through Kafka to a data-collector, which stores everything in MongoDB (including historical CSV data) and static data such as device IDs in PostgreSQL.

Spark then generates predictions and computes optimal collection routes. The backend fetches the processed data through Spark and Redis and serves it with Flask to the Angular dashboard.

Source on GitHub

Machine Learning · University of Twente · 2025

Dice Wars AI Player

An AI that plays Dice Wars, trained with reinforcement learning.

Deep Q-Learning

At the heart of the agent is a neural network that approximates the Q-value function Q(s, a): the long-term expected reward of taking action a in state s, assuming the agent plays optimally afterwards.

Why DQN fits the game

Dice Wars is turn-based, with a discrete, sequential environment: a finite number of moves per turn, discrete actions (attack or end turn) and clearly defined states (the board and the match status). That makes Q-learning a natural fit, since each step depends heavily on previous choices.

Training

We built an environment for experimenting with network architectures, reward functions, hyperparameters and player matchups, and toggled high-level descriptors like border strength and entropy to measure their impact. Training was iterative: many episodes under varied conditions, tracking reward curves and win rates, and adjusting based on intermediate evaluations.

Source on GitHub

Bachelor's thesis · Pirelli · University of Turin · 2022

Process Capability for Scrap Reduction

The aim was to minimize scrap in Pirelli's tyre production process. We built a streamlined pipeline for sensor data and delivered a quality dashboard for monitoring.

Qlik Sense dashboard

Filtering by date or measurement shows the production time series, box plots, distributions and process capability indices (Cp, Cpk, Pp, Ppk), which are essential for preventing scrap.

Pipeline

Data comes straight from sensors. We first analyzed it in JMP to find patterns and trends, then built a Python pipeline that pulls data from an IIoT AWS database, preprocesses it and saves Parquet files back to AWS for Qlik Sense.

Source on GitHub

Computational Social Science · University of Trento · 2024

Reddit Analysis of Character.ai

This study looks at public perceptions of Character.ai, a platform for chatting with AI characters, using Reddit discussions.

Topic modeling with LDA and principal component analysis identify the key themes of engagement: escapism, support-based interactions and assistance.

Therapy-related discussions get special attention. "Comfort" emerges as a significant concept, and a semantic network maps its associations, offering insight into the platform's role in users' well-being.

Source on GitHub

Data Science · University of Twente · 2025

Data Mining for Referral Advice

Low back pain is one of the leading causes of disability worldwide, and choosing the right referral is a key challenge: misguided or delayed referrals contribute to chronic pain and higher costs.

Using a real-world dataset from the Groningen Spine Center, the project asks two questions:

  • Can we automatically predict the most appropriate treatment from patient questionnaire answers?
  • Can we reduce the number of questions without significantly lowering model performance?

Source on GitHub

Advanced Social Network Analysis · University of Trento · 2024

Departmental Impact on Collaboration Networks

This study analyzes a collaboration network of scientists, keeping ties with more than three interactions.

It compares Management, Economics and Behavioral Sciences (DeptGroup = 1) with other fields (DeptGroup = 0), using beta centrality for local influence and betweenness centrality for bridging roles.

DeptGroup 1 shows stronger connectivity within its clusters, while DeptGroup 0 plays more bridging roles. Permutation tests validate the results, showing how departmental affiliation shapes local and global roles in the network.

Source on GitHub

Customer and Business Analytics · University of Trento · 2024

Choice-Based Conjoint Analysis on Smartphones

Conjoint analysis is a marketing research method for understanding what consumers prefer in a product or service.

This research uses Choice-Based Conjoint (CBC) analysis to measure the importance of different smartphone attributes, focusing on the most prominent Chinese manufacturers, and compares customers' preferences across characteristics.

The findings offer useful insights for managing retail inventory in the smartphone industry.

Source on GitHub

Advanced Computer Vision and Pattern Recognition · University of Twente · 2025

Surgical Video Phase Recognition

Recognizing the phases of a surgery from video, for the Advanced Computer Vision and Pattern Recognition course.

Source on GitHub

Process Mining · University of Twente

Process Mining

Process mining coursework using PM4Py.