Portfolio

Tutto quello che è in produzione.

21 prodotti, ognuno con le piattaforme su cui gira, lo stack che ha dietro e i sistemi con cui parla. Il link apre il prodotto dal vivo.

Stack

Con che cosa costruisco davvero.

Non l'elenco di tutto quello che ho aperto una volta. Questi sono gli strumenti che reggono sistemi in produzione, raggruppati per quello che servono a fare.

Linguaggi

  • Swift
  • Kotlin
  • TypeScript
  • JavaScript
  • Python
  • Java
  • Objective C
  • SQL

Mobile

  • SwiftUI
  • UIKit
  • Jetpack Compose
  • Wear OS
  • Core Data
  • GRDB
  • Chioschi Android
  • TestFlight

Backend

  • NestJS
  • Node.js
  • Express
  • Fastify
  • FastAPI
  • Prisma
  • REST
  • GraphQL
  • BullMQ

Dati

  • PostgreSQL
  • Cloud SQL
  • Firestore
  • Redis
  • MongoDB
  • MySQL
  • Data warehouse
  • PgBouncer

Cloud

  • Google Cloud
  • Cloud Run
  • Firebase
  • Docker
  • Kubernetes
  • Vercel
  • Cloudflare
  • Secret Manager

Intelligenza artificiale

  • LLM multi provider
  • RAG
  • OCR Cloud Vision
  • Previsione
  • TensorFlow
  • PyTorch
  • Core ML
  • Ollama

Web

  • Next.js
  • React
  • TanStack Query
  • TailwindCSS
  • Vite
  • Three.js
  • Generatori statici
  • Web Components

Sicurezza

  • OWASP
  • Burp Suite
  • Nmap
  • Wireshark
  • Metasploit
  • Kali Linux
  • Splunk
  • Audit dei permessi

Come è costruito

  1. Tipi rigorosi

    TypeScript in modalità strict senza scorciatoie, controllo della concorrenza di Swift 6, schemi validati a ogni confine.

  2. Permessi per impostazione predefinita

    Ogni rotta dichiara il permesso che le serve e uno script in integrazione continua fa fallire la build quando ne manca uno.

  3. Offline first

    Un database locale e una coda di sincronizzazione idempotente, perché una cassa non può fermarsi quando cade la linea.

  4. Un solo modello dei dati

    I prodotti si parlano con contratti firmati invece che con esportazioni, così lo stesso numero non ha mai due versioni.

  5. Nato per sette lingue

    Le stringhe di interfaccia vivono fuori dal markup, con un fallback che tiene leggibile la pagina quando manca una chiave.