02 · Projects

Projects

Things I built outside of work: my thesis, university projects and personal experiments. The code for each one is on GitHub.

Deep learning and LLMs

Variable star classifier

Source ↗

MSc thesis · University of Padua · 2024 – 2025

Variable stars change brightness over time, and the shape of that change tells astronomers what kind of star it is. I trained two PyTorch models on light curves from the Zwicky Transient Facility (ZTF): a 2D-CNN that reads each curve as an image-like representation, and a hybrid CNN-LSTM that reads the reconstructed sequence. Both were evaluated with 5-fold cross-validation on 5-class and 10-class setups.

2D-CNN: 99.95% accuracy on the full 5-class dataset, 88.7% on 10 classes. CNN-LSTM: 90.0%, with training about three times faster.

  • PyTorch
  • 2D-CNN
  • CNN-LSTM
  • Time series
  • ZTF

Recipe generation with Mistral-7B and QLoRA

Source ↗

Group project · NLP course, University of Cyprus · 2024

Parameter-efficient fine-tuning of Mistral-7B-v0.1: the model is loaded in 4-bit and adapted with LoRA through Hugging Face PEFT, so it trains on a single GPU. Given a list of ingredients, it writes a recipe title and the instructions. We ran five training rounds, from 200 to almost 20,000 recipes, improving data cleaning and prompt format each time.

Evaluated with BLEU, ROUGE-1 and METEOR: 62%, 81% and 78%.

  • Mistral-7B
  • QLoRA
  • PEFT
  • Hugging Face

NLP labs

Source ↗

Course labs · Natural Language Processing

Notebooks covering the classic NLP pipeline on news data: text pre-processing, n-gram language models and perplexity, text classification with traditional models, TF-IDF features and word vectors.

  • Python
  • Jupyter
  • NLP

Computer vision

PCB defect detection with YOLOv8

Source ↗

Personal project · 2025

A YOLO model trained on the DeepPCB dataset to find six kinds of defects on printed circuit boards: open, short, mousebite, spur, pin hole and spurious copper. One script runs the whole pipeline, from data preparation and train/validation/test split to training and testing. A FastAPI service exposes the trained model, and Docker packages it.

  • YOLOv8
  • FastAPI
  • Docker
  • DeepPCB

Leukemia cell classifier

Source ↗

Two-person project · AI in Medicine course, University of Cyprus · 2024

Classifies white blood cells as healthy or leukemic (acute lymphoblastic leukemia) on the C-NMC 2019 dataset. Instead of a convolutional network, it uses OpenCV preprocessing and augmentation, handcrafted features and a small Keras neural network tuned with grid search, which needs far less compute.

F1 score 84.66%, against 77.43% for an SVM on the same features.

  • OpenCV
  • TensorFlow / Keras
  • Feature engineering

Food recognition and leftover estimation

Source ↗

Course project · Computer Vision, University of Padua

A system that compares two pictures of a canteen tray, one before and one after the meal. It recognises the food on the tray in the first image and estimates how much of each food is left in the second.

  • C++
  • OpenCV

Robotics and reinforcement learning

Robot navigation with reinforcement learning

Source ↗

Personal project · 2026

A two-wheeled robot learns to reach a goal while avoiding six obstacles, using a simulated 24-ray LIDAR. The agent is a Soft Actor-Critic implementation in PyTorch with continuous linear and angular velocities, trained in PyBullet, with an optional ROS2 node.

  • SAC
  • PyTorch
  • PyBullet
  • ROS2

TIAGO robot navigation and manipulation

Source ↗

Course assignments · Intelligent Robotics, University of Padua

A navigation and manipulation system for the TIAGO robot built on ROS and Actionlib. The robot moves to a target pose while avoiding obstacles detected with its laser scanner, then picks and places objects with MoveIt!.

  • ROS
  • MoveIt!
  • C++

Other

RANSAC for Swiss house prices

Source ↗

Personal project · 2025

Compares ordinary linear regression with RANSAC regression for estimating Swiss house prices from living space. RANSAC ignores the houses with anomalous prices and gives a more reliable fit.

  • scikit-learn
  • Regression

Map and List adapters for Java ME

Source ↗

Course project · Software Engineering, University of Padua

Adapters that implement the Java Collections interfaces (List, Map, Set, Iterator) on top of the classes available in Java ME CLDC 1.1, so that a library written for J2SE 1.4.2 runs unchanged in the smaller environment.

  • Java
  • Design patterns

Greenify

Documents ↗

Course project · Entrepreneurship in AI, University of Cyprus · 2024

A business plan, not code: an AI platform that helps households cut energy use and emissions. Market segmentation, end-user profile, business model canvas and pitch.

  • Business plan
  • Product