Selected GitHub projects — an ongoing Kaggle Playground Series project, coursework from Politecnico di Milano and KTH, two ACM RecSys Challenge entries, a hackathon, and this site itself. Full list on GitHub.
Kaggle Playground Series — ongoing
Kaggle Playground Series, monthly tabular competitions
A running series of Kaggle Playground entries, all living in one monorepo. The machinery every competition shares is factored into an installable data_science_stuff.kaggle package — the cross-validation fold loop, Nelder-Mead blend weights, fold-safe target encoding, stacking with Caruana selection, threshold and cost-matrix decision rules, and a LightGBM CUDA probe — gated in CI by ruff, mypy --strict, bandit and 80% coverage. Recurring themes: adversarial validation to check that CV gains transfer to the test distribution, and picking final submissions by cross-validation rather than public rank.
- S6E7 — Student health risk (in progress) Three-class, balanced-accuracy task with missing values in every feature. A decision-corrected GBDT blend at 0.9497 public; adversarial-validation-weighted OOF vetoes candidates whose gains sit outside the test-like region.
- S6E6 — Stellar class, 12th / 2,817 Up from 407th public. Diverse models — quantile-bin target encoding, a from-scratch RealMLP on a logit-adjusted loss, a QSO/STAR cascade — took a 0.9662 GBDT plateau to ~0.9705.
- S6E5 — F1 pit-stop prediction Found a 2023 labelling anomaly (0.96% pit rate vs ~28%) and fitted separate blend weights either side of it over LightGBM, XGBoost, CatBoost and MLP bases; 0.9508 OOF AUC.
- S6E4 — Irrigation need Used the community-reconstructed generator formula (credit: Chris Deotte) as predictor, feature and residual base for LightGBM, with decision-threshold tuning.
- S5E1, S5E5, S5E6 — 2025 season Sticker-sales forecasting, calorie-expenditure regression and MAP@3 fertilizer recommendation — where the shared workflow first took shape.
alexdruso.github.io — personal site and interactive study notes
Independent project
This site. A Jekyll 4 static site with a deliberately dependency-free front end: eleven interactive study notes whose SVG and canvas visualisations are hand-written vanilla JS and redraw on theme toggle, a Snake game with an in-browser tabular Q-learning agent, a command palette and client-side search, and a GitHub Actions pipeline that compiles the CV from LaTeX with xelatex before deploying to Pages.
Implicit neural representations — images as functions
Independent project
Self-contained study of coordinate networks that fit an image as f(x, y) → RGB. A plain ReLU MLP recovers only a blurry version — the spectral bias of neural networks — while random Fourier features and SIREN fit it sharply; the continuous representation is then sampled at 2.5× and 4× for arbitrary-scale upscaling, with an honest comparison against bicubic. Companion code to the study note of the same name.
ID2222 — Data Mining lab assignments
ID2222 Data Mining @ KTH Royal Institute of Technology
Five labs covering core data-mining algorithms: shingling + min-hash + LSH for near-duplicate detection, A-Priori association rules, the Triest streaming triangle counter, spectral clustering, and the JaBeJa graph partitioner.
RecSys Challenge 2022 — 11th place
ACM RecSys Challenge 2022 @ Politecnico di Milano
11th-place solution to the ACM RecSys Challenge 2022. Three-stage pipeline: collaborative / content / graph recommenders, neural sequence models (Transformer, BiLSTM, GRU), and a 10-fold LGBM ranker on top — reached ~0.1965 MRR@100 on test.
DD2437 — Artificial Neural Networks and Deep Architectures
DD2437 @ KTH Royal Institute of Technology
Four lab assignments implementing classical and deep neural architectures from scratch: perceptron / MLP, RBF networks and SOMs, Hopfield networks, and Restricted Boltzmann Machines / Deep Belief Networks.
II2202 — Quantum Ridge Regression on D-Wave
II2202 Research Methodology @ KTH Royal Institute of Technology
Empirical study of training Ridge regression on a D-Wave hybrid quantum annealer vs. classical Cholesky decomposition. Found that quantum-trained models do not match classical reliability across the datasets tested.
HackaTUMeme — gamified movie recommender
HackaTUM @ TU München
Conversational movie recommender that explores MovieLens as a graph rather than as a static carousel: temporarily expands the user profile during a session and surfaces films through trivia and social context.
RecSys Challenge 2021 — Trial&Error team
ACM RecSys Challenge 2021 @ Politecnico di Milano
Tweet-engagement prediction pipeline for the ACM RecSys Challenge 2021. LightGBM / XGBoost / CatBoost gradient boosting on transformer-derived features, distributed with Dask on AWS GPU/CPU instances.
Quantum linear regression on Orquestra
Independent project
Orquestra component that trains an OLS linear regression model via simulated / quantum annealing — a stepping stone toward the later D-Wave Ridge regression study.
DB2 — JEE database application
Databases 2 @ Politecnico di Milano
Enterprise-Java web application built on JPA, JEE, and Thymeleaf — full DDL schema, persistence layer, and templated UI for a Databases 2 course assignment.
CLup — RASD & Design Document
Software Engineering 2 @ Politecnico di Milano
Requirements & Specification (RASD v1.2) and Design Document (DD v1.0) for the CLup queue-management application. Models written in Alloy and MagicDraw, mockups in Moqups.
Santorini — distributed multiplayer board game
Software Engineering @ Politecnico di Milano
Full implementation of the Santorini board game in Java SE 14: socket networking, multiple concurrent matches, CLI + GUI clients, five advanced god powers, and a CircleCI pipeline with ~95% server-side test coverage.
RecSys Challenge 2020 — PoliMi
Recommender Systems course challenge @ Politecnico di Milano
5th / 8th (public / private) out of 66 in the in-class Kaggle challenge. Generalised N-score hybrid over MF-IALS, RP3-Beta and SLIM-ElasticNet, with a GPU-accelerated MF that cut training from ~10 min to 30 s.
Working-zones address decoder (VHDL)
Reti Logiche @ Politecnico di Milano
VHDL hardware module that decodes 8-bit memory addresses using the working-zones locality scheme to reduce switching activity. Verified with Vivado testbenches; graded 30/30 cum laude.
API — graph-relationship engine in C
Algoritmi e Principi dell'Informatica @ Politecnico di Milano
Graph-mutation program (addent / addrel / delent / delrel / report) written in C and tuned for an automated grader on both runtime and memory budgets. Final score 30/30 cum laude.
