Progetti

Quello che costruisco e gestisco fuori dal lavoro, e progetti dei miei studi e del dottorato.

  1. 2024 – Presente

    homelab

    Piattaforma Kubernetes, gestita come in produzione

    Un cluster k3s da 10 macchine che ospita una trentina di app self-hosted. Tutto, dall’installazione del sistema operativo al deployment di ogni app, è dichiarato in git e distribuito da Argo CD.

    • Nessuna porta in ingresso aperta: Cloudflare Tunnel, un WAF, Gateway API e SSO davanti a ogni app
    • Aggiornamenti automatici su tre livelli: sistema operativo dei nodi, Kubernetes e app
    • Ripristini testati, backup off-site e una GPU che si accende su richiesta per gli LLM locali
    • Kubernetes (k3s)
    • Argo CD
    • Cilium
    • Vault
    • Authentik
    • Longhorn
    • Fedora CoreOS
    • Ansible
    • Prometheus
    • Grafana
    • Ollama
  2. 2026 – Presente

    WO

    Web app per i viaggi di gruppo, sviluppata e gestita in produzione

    Organizza un weekend con amici, famiglia o colleghi in un unico posto: scegliere insieme un alloggio, dividere le spese e saldare i conti, i pasti e la lista della spesa, le attività, come arriva ciascuno con una stima della CO2, un album fotografico e una playlist condivisi. Disponibile in quattro lingue, su computer e come app sul telefono.

    • Next.js, TypeScript e PostgreSQL; test unitari e di proprietà con Vitest, test end-to-end su desktop e mobile con Playwright
    • Ospitata in Francia su un server OVHcloud trasformato in un cluster k3s a un nodo, con l’infrastruttura in OpenTofu e Flux che distribuisce il chart Helm di ogni release, con rollback in caso di errore
    • Pensata per il GDPR: dati di pagamento cifrati a riposo, esportazione dei dati e cancellazione dell’account, pulizia automatica 18 mesi dopo un viaggio
    • Next.js
    • React
    • TypeScript
    • PostgreSQL
    • Drizzle
    • Tailwind CSS
    • Playwright
    • Kubernetes (k3s)
    • Helm
    • Flux
    • OpenTofu
    • OVHcloud
  3. 2025 – Presente

    freqtrade-operator

    Operator Kubernetes open source, scritto in Go

    Esegue bot di trading freqtrade su Kubernetes. Bot, strategie, backtest e interfaccia web sono risorse personalizzate: un intero setup di trading si dichiara e si versiona come qualsiasi altra app.

    • API versionata, da v1alpha1 a v1beta1, con webhook di conversione
    • Chart Helm pubblicato come artefatto OCI; immagini firmate, con SBOM
    • Testato in CI con envtest ed end-to-end su un cluster kind
    • Go
    • controller-runtime
    • Kubernetes CRDs
    • Helm
    • GitHub Actions
    • cosign
  4. 2026

    wol-relay

    Piccolo servizio Go per l’homelab

    Trasforma una chiamata HTTP in un broadcast Wake-on-LAN. Un pod non può inviarlo da solo, perché le reti dei pod non inoltrano i broadcast, quindi il relay gira sulla rete host di un nodo. Accende la workstation GPU che esegue i miei LLM locali solo quando un servizio ne ha bisogno.

    • Circa 150 righe di Go, solo libreria standard, con test
    • Immagine distroless non-root per amd64 e arm64, compilata su runner nativi e unita in un unico manifest
    • Chart Helm con rete host e tutte le capability rimosse, distribuito da Argo CD
    • Go
    • Kubernetes
    • Helm
    • Docker
    • GitHub Actions
  5. 2023 – 2025

    ScaleHub

    Strumento di testbed nato dal mio dottorato

    Crea cluster Kubernetes temporanei che combinano server bare-metal, VM e Raspberry Pi, e ci esegue esperimenti ripetibili sulla scalabilità di Apache Flink. Da qui vengono i risultati dei miei articoli a IC2E 2024 e SAC 2026 e della mia tesi.

    • Effettua il provisioning di nodi Grid’5000 e di un cluster locale di Raspberry Pi da un unico file di configurazione, uniti in un solo cluster K3s tramite una rete mesh Tailscale
    • Ansible distribuisce l’intero stack (Flink, Kafka, MinIO, Prometheus, VictoriaMetrics, Grafana, Chaos Mesh), ogni componente separatamente
    • Un servizio nel cluster, controllato via MQTT, ridimensiona Flink passo dopo passo tramite savepoint, aggiunge latenza di rete con Chaos Mesh ed esporta le metriche
    • Python
    • Kubernetes (K3s)
    • Ansible
    • EnOSlib
    • Apache Flink
    • Kafka
    • Chaos Mesh
    • Prometheus
    • VictoriaMetrics
    • Tailscale
  6. 2020

    Interceptor

    Programmazione di sistema Linux in C, durante la magistrale

    Un tracer che si collega a un processo x86-64 in esecuzione e cambia ciò che esegue: imposta breakpoint, chiama funzioni dentro il processo target, inietta nuovo codice nella sua memoria e ci reindirizza una funzione con un trampolino. Insieme al progetto del razzo al CNES che è seguito, è ciò che mi ha portato al C e ai sistemi Linux.

    • Legge e scrive la memoria di un altro processo tramite /proc/<pid>/mem, e ne ricava la disposizione da /proc/<pid>/maps
    • Trova le funzioni nella tabella dei simboli ELF con libelf, anche negli eseguibili position-independent
    • Chiama posix_memalign e mprotect dentro il processo target per ottenere una pagina eseguibile per il codice iniettato
    • C
    • Linux
    • ptrace
    • libelf
    • x86-64
    • CMake