I build data pipelines and machine-learning systems. Since June 2025 I'm an IT trainee at Migros, rotating through the data teams of the group. Before that I did my BSc and MSc in Informatics at the University of Zurich, with a semester at UTS Sydney in between.
What I enjoy most is the full chain: a pipeline, a model, and an interactive visualisation at the end that people actually use. I like to understand the data before I build on it, and I'd rather publish a worse number than a wrong one (see the heart disease rewrite below).
class NicolasHuber:
role = "IT trainee, data engineering & ML"
employer = "Migros-Genossenschafts-Bund"
rotation = "Digitec Galaxus, data team" # current station
degree = "MSc Informatics, UZH"
focus = ["data pipelines", "ML in production", "visual analytics"]2026 digitec-galaxus data team: moving ML models to a new Airflow platform
2026 migros-bank dbt + Dagster pipeline on OpenShift, workshops on dbt, data products and Git
2025 mgb-data aggregation layer for model training, built as a dbt pipeline on Google Cloud
2025 msc-uzh thesis: SDG Tag Heroes, graded 6.0
2024 uts-sydney exchange semester: UNIX systems, data science, cyber security
2023 ivda-uzh research assistant: visual analytics prototypes with FastAPI, Qdrant, Vue, D3
2023 ieee-csr co-author of a paper on Moving Target Defense, from my bachelor's thesis
2021 novu junior web developer: Symfony apps, an internal ERP, courses for apprentices
| Project | What it is |
|---|---|
| SDG Tag Heroes · open the app | Researchers label papers by UN Sustainable Development Goal: a model suggests, players vote and decide. Covers the whole chain from harvesting publications through embeddings and a vector database to the API and a D3 frontend. Master's thesis, 2025, graded 6.0; the thesis state lives on the thesis branch. Runs on my VPS (infrastructure). Nuxt D3 FastAPI Qdrant |
| Towers vs. Monsters · play it | A tower defense game where every tower fires in one straight line, so where you put it and which way it faces decides everything. 30 rounds with boss waves. Remake of our 2021 software engineering lab project, which needed a Java server and a fixed window; this one runs in the browser, on desktop and phone. React TypeScript Canvas |
| OkCupid Explorer · live demo | Answer a dating questionnaire and see where you land among 842 OkCupid profiles. Cosine similarity, PCA and k-means run in the browser. Group project 2022, rebuilt 2026. Vue TypeScript ECharts |
| Project | What it is |
|---|---|
| heart-disease-risk-factors-uzh | Our first data science project from 2021, rewritten in 2026. The rewrite found target leakage in the original: without it, the models barely beat the baseline. scikit-learn pandas |
| sdg-classifier | DistilBERT fine-tuned for multi-label SDG classification of abstracts, with full fine-tuning or LoRA. Built for the thesis in 2024, rebuilt as a package in 2026 with a fix for the class weights. PyTorch Transformers |
| academia-maestro | Asks a folder of research papers the same questions and turns the answers into a comparison table for a literature review. Works with ChatPDF, Claude or a local model through Ollama. Python LLM |
| Project | What it is |
|---|---|
| MTDStrategySelectionAgent | An agent on small IoT devices reads system metrics and picks the Moving Target Defense that fits the malware it sees. Bachelor's thesis; I'm co-author of the resulting paper at IEEE CSR 2023. Python IoT security |
| network-science-uzh | Four graded assignments from the Network Science course: centralities, community detection, null models and epidemics on networks. UZH, 2023. NetworkX Jupyter |
| numerical-methods-uzh | The classic numerical methods, from root finding to numerical integration, each written from scratch as a MATLAB function. UZH, 2020. MATLAB |
| gaia-classifier | Sorts Gaia DR3 stars by spectral class: feature sets by decision-tree importance, then a cross-validated grid search over ten classifiers. Class Kaggle competition at UTS Sydney, 2024. scikit-learn |
Also here: infrastructure (one VPS, Coolify, images built in GitHub Actions) and docker-dbs (six databases for local development, one command).
Formerly known as the aspiring code alchemist.

