Featured Links
- Hearing and Seeing Emotion: Speech + Face Fusion on RAVDESS
- The Limits of Cross-Lingual Transfer: Evaluating SignCLIP on LIS
- Hard Real-Time Systems Analysis (RTIC, Ravenscar, MAST)
- Evaluating Dynamic Object Removal and Scene Stabilisation Strategies for Multi-View Consistent Video
- NLP & AI Notes (UniPD)
Summary
Master’s student in Computer Science (AI major) based in Padova, Italy. Australian and Italian dual citizen 🇦🇺🇮🇹
I’m interested in the intersection of AI and systems. I’m currently working on my thesis with the Machine Intelligence Group (MIG) at IAS-Lab, supervised by Professor Nicola Bellotto, building a RIOT-based platform for on-device terrain segmentation for closed-loop tiny-robot navigation. I will graduate in early April 2027.
Alongside my thesis, I do research on sign language recognition and multilingual representation learning.
Interests
- Systems: ML systems, TinyML, embedded and real-time systems, robotics
- AI: deep learning, computer vision, multimodal fusion, representation learning
My goal is to work on innovative technologies that positively impact people’s lives.
Skills
- Programming Languages: Python, C/C++, Rust, Ada, Java, Scala
- ML & Data: PyTorch, TensorFlow, Hugging Face, OpenCV, MediaPipe, NumPy, PEFT/LoRA
- TinyML & Edge AI: MicroFlow, LiteRT (TensorFlow Lite Micro), on-device inference
- Embedded & Real-Time: RIOT OS, Rust RTIC, embedded Rust/C, Ada Ravenscar, ESP32/ESP32-S3, ARM Cortex-M4, device drivers (SPI/I2C), WCET analysis, MAST
- Robotics: ROS 2
- Parallel & Concurrent: CUDA, OpenMP, pthreads, multi-core programming
- Systems & Tools: Linux/Debian, Bash, Git, OS kernels
- DevOps & Automation: CI/CD (Jenkins), ActiveBatch, ETL pipelines, automated testing
- Databases: PostgreSQL, SQL Server, SQLite
- Web & Networking: REST APIs, web protocols, networking
- Methodologies: Agile, Scrum, XP, Jira, UML
- Spoken Languages: 🇦🇺 English (native), 🇮🇹 Italian (B2), 🇬🇷 Greek (A1)
Education
Projects
Master’s
- Integrating Rust-based TinyML inference (MicroFlow) into RIOT OS on ESP32-S3 for closed-loop tiny-robot navigation
- Open-source contribution: adding camera support to RIOT OS with a driver for the Arducam Mini 2MP Plus (OV2640, SPI) camera, with JPEG and raw output, to be contributed upstream
- Optimising the perception pipeline and models for on-device inference
- Training and developing Tiny Vision models
- Targeting a live on-device segmentation demo
- First study of SignCLIP’s multilingual transfer to low-resource LIS, testing the iconicity hypothesis across zero-shot, few-shot and fine-tuning, on the A3LIS-147 and SignIT datasets
- Showed that aligning many sign languages to one English text space causes negative zero-shot transfer: it helps iconic signs and hurts non-iconic ones
- Ran a fine-tuning ablation over six contrastive objectives (InfoNCE, SupCon, GlobalNCE, DHN-NCE, ProLIP, cross-entropy). GlobalNCE raised zero-shot R@1 from 3.7% to 76.2%, and its linear probe (R@1 80.2%) matches the previous state of the art on A3LIS-147
- On SignIT, outperformed all of the original authors’ non-video baselines using pose keypoints only
- Exploring multilingual, language-universal sign representations, motivated by the negative cross-lingual transfer found in the SignCLIP study
- Developing a pose-based architecture, inspired by multimodal JEPA, that learns language-gated sign embeddings by predicting into a frozen text-embedding space, so representations carry semantic meaning across sign languages
- Early results (ongoing): above-random positive transfer to sign languages the model has never seen
- Built a pipeline that predicts 85 anatomical ear landmarks from 3D head scans, for personalised spatial audio (HRTF)
- Ranked 12th of 38 teams (top third) on the public leaderboard as an all-Master’s team, in a challenge that recommended PhD members
- Split the task in two: predict 15 anchor landmarks, then trace the remaining 70 contour points between them, reaching ~1.2 mm mean error overall
- Anchors: fused three different networks (multi-hypothesis DGCNN, HRNet heatmaps on rendered depth/curvature images, Point2SSM++) with per-landmark agreement weighting, deployed as cross-validated ensembles
- Contours: traced as geodesic (shortest) paths on the mesh, steered by a statistical shape model prior so they follow the ear’s folds (0.63 mm ceiling), then refined with a graph-attention network
- Generated synthetic training ears via PCA shape sampling and RBF mesh warping, cutting anchor error by 4%
- Built an audio-visual system that classifies 7 emotions from RAVDESS clips, evaluated with 6-fold actor-wise cross-validation across all 24 unseen actors
- Temperature-calibrated late fusion improved every speech model by +5.3 to +7.7 accuracy points (best: 78.5% with LoRA wav2vec 2.0 + face, vs 73.2% speech and 60.4% face alone)
- Built the FER branch as an XGBoost random forest on MediaPipe facial blendshapes: 376 summary features (7 per-channel statistics over 53 blendshape channels, plus 5 inter-region ratios)
- Compared five speech pipelines (wav2vec 2.0 and emotion2vec under frozen probes, weighted layers, and LoRA adaptation)
- Under a strictly matched probe and training recipe, general speech pretraining (wav2vec 2.0) and emotion-specific pretraining (emotion2vec) showed no statistically reliable difference (72.0% vs 68.7%, 95% CI [−0.6, +7.0])
- LoRA adaptation on wav2vec 2.0 significantly outperformed the frozen weighted-layer probe (+6.2 points alone, +4.1 points fused)
- Demonstrated modality complementarity: the face model is strongest where speech is weakest (e.g. happy), with fusion providing the largest gains on subtle, normal-intensity clips
- Studied why AI-generated video breaks 3D reconstruction: moving objects violate multi-view constraints and flickering textures make COLMAP (SfM) and 3D Gaussian Splatting drop frames, misestimate poses and collapse geometry
- Compared dynamic object removal strategies against a raw baseline, from 2D masking and inpainting (YOLOv8 or SAM with ProPainter) to causal scene rewriting with the VOID video diffusion model
- VOID cut LPIPS by about 57% on the car scene (0.169 to 0.073), while 2D masking and inpainting gave only marginal gains and introduced multi-view inconsistencies
- Stabilised a static industrial-loft scene with CLAHE (for COLMAP) and bilateral filtering (for 3DGS training), recovering 3.9x more 3D points (2,342 to 9,158) and raising PSNR by 9.6 dB (25.1 to 34.7 dB)
- Concluded that every post-hoc correction still introduces artifacts, so multi-view consistency needs 3D constraints during generation, such as explicit 3D memory
- Ported the Generic Environment Executive (GEE) hard real-time benchmark from Ada Ravenscar to Rust RTIC on an STM32F429I-Discovery (ARM Cortex-M4), preserving the original task set
- Built MAST schedulability models for both frameworks, generated from templates with Python, using WCETs measured with the DWT cycle counter through GDB scripts
- RTIC cut interrupt entry latency by about 45% (267 ns vs 483 ns) and scaled to 100 concurrent tasks with lower release jitter, while Ada ran out of memory after 25 extra tasks (20 KB default stacks)
- Showed that RTIC’s global interrupt masking adds non-preemptive blocking that rigorous schedulability analysis cannot ignore, and that its O(N) timer queue and separate synchronisation primitives make systems harder to model than Ada’s protected objects
- At maximum load both frameworks reached about 64–65% utilisation, so their schedulability differences become negligible for millisecond-range deadlines
- A simulated UR5 arm locates two cubes with AprilTags and swaps them between tables, orchestrated by a BehaviorTree with automatic retries
- A mobile robot computes a goal from two AprilTags, drives there with Nav2, then detects cylindrical tables with lidar
Undergraduate
- Engineered and deployed an automated deep learning pipeline for segmentation of gigapixel whole-slide images of glioblastoma tissue from TCGA-GBM
- Trained a DRAN CNN (U-Net) in TensorFlow, and built the pipeline with OpenCV, Celery and Redis
- The system includes a web portal that generates tissue masks, tools that download and validate TCGA-GBM data from the GDC, and a management server for transferring masks
- Built a 32-bit x86 kernel in C and Assembly: boot process, memory management, user environments, preemptive multitasking, file system, spawn and shell
- Designed and implemented a multiplayer game entirely in C, working directly with the NDS hardware: interrupts, Wi-Fi, graphics and button input
- Wrote
txt4libnds, a small text-engine library for creating and managing text objects in libnds projects
Other
Work Experience
- Fully automated supply and demand forecasting operations with ETL pipelines (Python, SQL Server, ActiveBatch): data ingestion, manual cleaning and ArcGIS workflows for the Clean Energy Regulator’s ACCU Register, saving the team 5 hours of manual work per cycle
- Developed supply-side carbon market models and analytics in Power BI and Excel
- Wrote technical and end-user documentation for the automated workflows, so every team member could maintain them long-term
- Tutored university students in OOP and systems programming using C, Java and Python
- Led online order fulfilment for pickup and delivery, managing time-sensitive logistics, customer service and manual labour
- Played guitar and keyboard in the school production of School of Rock: The Musical and helped students learn their instruments for their on-stage roles