Projects
Each project page covers the motivation, the method, and the result, with notebooks and code so you can reproduce it.
These are self-directed learning projects. I didn't use these tools at work; I built each one from scratch to learn it properly. Everything is public.
Vision Transformer fine-tuned on 6,600+ casting images to classify surface defects. 99.5% F1 after 3 epochs. Experiment tracking with MLflow, served via FastAPI, model hosted on HuggingFace Hub — live demo calls the Inference API.
LSTM neural network trained on 515k Booking.com hotel reviews to classify sentiment. Balanced training on 100k samples, 86% macro F1. Deployed client-side with TensorFlow.js — live predictions run entirely in the browser.
Serverless analytics pipeline on AWS processing 540k+ e-commerce transactions. PySpark (Glue) computes 9 aggregation tables — RFM segmentation, cohort retention, Pareto analysis — served as live JSON endpoints via Lambda + API Gateway. All infrastructure defined in Terraform.
Maps supply and demand patterns across Valencia neighbourhoods. Airbnb, population, and rent data are cleaned and joined with SQL; per-capita listings and review trends are visualised. Caveats documented (reviews as proxy, geography alignment).
Forecasts hourly electricity load on the Spanish grid and stress-tests the system under extreme scenarios. Gradient-boosted models with weather features, time-aware cross-validation, and what-if cases covering cloud cover, heat waves, and nuclear availability.
Conversational data agent for exploring 5,700+ global AI job postings. Natural-language queries drive live Plotly charts, scatter-geo maps, and salary analytics via a tool-calling LLM (Llama 3.3 70B on Groq) with ChromaDB semantic search.
Tracks regional extreme weather across France, Spain, Germany, Italy, and Portugal. A Python pipeline combines Open-Meteo archives with OpenWeather forecasts to flag multi-day hazard alerts at the administrative region level.