Vai ai progetti
Federico Barbieri Contatti English

Federico Barbieri

Gira la pagina per vedere cosa la fa funzionare

Fullstack developerBrescia

Prendere un’idea e renderla qualcosa di vero è la parte che mi ha sempre attratto della programmazione. Seguo piattaforme web, mobile e cloud a tutto tondo: quello che l’utente vede e quello che le fa funzionare.

Esplora i progetti

Progetti scelti

  1. Ruolo attuale2025 - oggi

    1. Una suite di prodotti per un’azienda della formazione professionale, interni e rivolti ai clienti, con una sola identità: un gestionale per il core business, un authorization server centrale, un marketplace, ticketing e timesheet. Progetto l’architettura e scrivo gran parte del codice.

      Il problema
      L’azienda gestiva il proprio lavoro su strumenti separati con login separati. Ogni nuovo prodotto voleva dire un altro database utenti e un’altra password, e nessuno strumento parlava con gli altri.
      Cosa ho fatto
      Ho progettato e costruito i prodotti come un unico ecosistema con una sola identità. Il gestionale è il più grande: modella l’operatività quotidiana dell’azienda da capo a fondo, dalla pianificazione alla rendicontazione, e integra i servizi esterni su cui il business già si appoggia. Un authorization server separato gestisce il login di tutto ed emette token OIDC che portano solo l’identità, mentre ogni prodotto tiene i propri ruoli e decide chi entra. Il marketplace vende con checkout Stripe; ticketing e timesheet girano sullo stesso stack e sullo stesso login. Le decisioni sono scritte come ADR prima di andare in produzione.
      Sotto il cofano
      Spring Boot 4 su Java 25, Vaadin 25 con viste Flow e React, Spring Security, Spring Authorization Server (Authorization Code flow, gate di accesso per prodotto sull’endpoint authorize), JPA con Flyway su MySQL (78 migrazioni solo sul gestionale), checkout Stripe embedded. I rilasci sono tag git: GitHub Actions su runner self-hosted costruisce l’immagine, la pubblica su GHCR e ridistribuisce con docker compose. Circa 1.000 commit su cinque repository, primo committer in ognuno.
      • Uno scraper Playwright in Java, porting di un prototipo Python, che alimenta un database MySQL.
      • Un client desktop Electron per strumenti interni.
      • Script Python che validano dati Excel e PDF per il processo di conformità di un cliente enterprise.
      • Un sito aziendale in Next.js.
  2. Ruolo precedente2022 - 2025

    1. Una piattaforma di project management: app mobile, web app con gantt e timeline, automazioni sui task e integrazione Microsoft 365. Ero lo sviluppatore principale su entrambi i client.

      Il problema
      I team avevano bisogno di un posto solo per pianificare il lavoro da telefono e desktop, con le viste di pianificazione che fogli di calcolo e chat non potevano dare.
      Cosa ho fatto
      Ho costruito l’app Flutter con state management BLoC e la web app Next.js: gantt e timeline, automazioni sui task, editor rich-text, export PDF, accesso e calendario tramite Microsoft 365. La logica server gira come Firebase Cloud Functions.
      Sotto il cofano
      Flutter con flutter_bloc e dio, Next.js con React, TipTap, react-pdf, MSAL e Microsoft Graph, Firebase Auth, Firestore e Cloud Functions su Node. Circa 42.000 righe di Dart e 39.000 di TypeScript, oltre 1.000 commit come autore principale.
      • Un’app social geolocalizzata per un cliente sotto NDA: Expo e Firebase, ricerca di prossimità con geohash, clustering su mappa, chat vincolata all’abbonamento. Circa 26.000 righe, 53 commit miei.
      • Un sito aziendale in Next.js.
  3. Personali2024 - 2026

    1. Un’app nativa per organizzare viaggi di gruppo: votare la destinazione, proporre alloggi, costruire l’itinerario su mappa e calendario, dividere le spese, chattare. Costruita due volte, apposta.

      Il problema
      I viaggi di gruppo muoiono nelle chat: nessuno decide la destinazione, le spese si perdono, il piano vive nella testa di uno solo. La prima versione, fatta in sei nel 2025, funzionava, e ci ha insegnato cosa serviva davvero.
      Cosa ho fatto
      Ero primo committer della v1 (Angular, Ionic, Express, Prisma su Postgres). Poi ho scritto un piano tecnico e l’ho ricostruita da solo nel 2026 su Expo: voto della destinazione, spese con conguaglio automatico, itinerario su mappa e calendario, chat realtime, notifiche push. Stavolta le security rules di Firestore sono testate sull’emulatore e le decisioni di design vivono accanto al codice.
      Sotto il cofano
      Expo SDK 56 con expo-router e NativeWind, Zustand, react-hook-form e Zod, i18next in italiano e inglese, react-native-maps. Cloud Functions v2 su Node 20 per voti, spese, inviti e notifiche. Rules Firestore testate con l’emulatore, unit test sulla divisione spese. Circa 12.900 righe di TypeScript.
    2. Un gioco musicale con carte stampate: inquadri il QR, parte la traccia su Spotify, indovini titolo e artista prima degli altri.

      Il problema
      I quiz musicali hanno bisogno di un conduttore con una playlist. Volevo una scatola di carte che facesse girare il gioco da sola, a un tavolo, con i telefoni che la gente ha già.
      Cosa ho fatto
      Ho costruito l’app in React Native con Expo: scansione con la fotocamera, riproduzione Spotify, punteggi in singolo e multiplayer. Uno script Python costruisce la lista dei brani da Spotify e genera le carte stampabili, dipingendo un gradiente radiale dentro ogni QR perché il mazzo sembri un mazzo e non un foglio di codici a barre.
      Sotto il cofano
      Expo SDK 51, expo-camera e lettura barcode, Zustand, NativeWind, Spotify Web API. Generatore di carte in Python con qrcode e Pillow. Codebase piccola, prodotto intero: carte stampate, fotocamera, API di streaming.

Competenze

In ordine di tempo di lavoro che occupano. Gira la pagina per le prove.

  1. Linguaggi

    • Java
    • TypeScript
    • Dart
    • Python
    • SQL
  2. Backend

    • Java
    • Spring Boot
    • Spring Security
    • JPA
    • MySQL
    • Node.js
    • Express
    • FastAPI
  3. Frontend

    • Vaadin
    • TypeScript
    • React
    • Next.js
    • Vite
    • Tailwind
  4. Mobile

    • Flutter
    • React Native
    • Expo
  5. Cloud

    • Firebase
    • Cloud Functions
    • Firestore
    • Docker
    • Traefik
    • GitHub Actions
    • Google Cloud
  6. E poi

    • Python
    • Postgres
    • Stripe
    • Playwright
    • Electron

Esperienza

  1. Fullstack developerAzienda della formazione professionale

    Progetto e sviluppo piattaforme fullstack per uso interno ed esterno, dalla prima bozza al go-live. Prendo le decisioni su architettura e stack, integro prodotti esterni e ho costruito il single sign-on centralizzato dell’intero ecosistema applicativo.

  2. Fullstack developerSoftware house

    Piattaforme web e mobile: architettura software, infrastruttura cloud e intero ciclo di sviluppo. Autore principale di entrambi i client di un prodotto di project management.

  3. Sviluppatore webAgenzia digitale

    Backend di un e-commerce personalizzato su WooCommerce, una mappa interattiva con Google Maps API e script di automazione per i processi interni. Primo approccio a Web3 e smart contract.

  4. Analista di sistemi informaticiServizi IT per il settore bancario

    Application management per istituti bancari: esecuzione e monitoraggio di elaborazioni, analisi dei log e risoluzione errori su ambienti Windows, Linux e Host, SQL per la gestione dei database.

Formazione

Chi sono

Sono Federico, fullstack developer di Brescia. Scrivo software per lavoro dal 2020 e costruisco piattaforme a tutto tondo dal 2022: backend, frontend, mobile e il cloud sotto.

Quello che mi piace è il giro completo: capire cosa deve fare un prodotto, scegliere uno stack che ci stia, scriverlo, portarlo online e tenerlo onesto con documentazione e test. Scrivo le decisioni prima di scrivere il codice.

Fuori dal lavoro costruisco le cose che vorrei esistessero: un pianificatore di viaggi per gruppi di amici, un gioco musicale su carte stampate.

Italiano, madrelingua. Inglese, B2/C1.

Contatti

Vuoi più dettagli, o il mio CV? Basta chiedere: l’email è il modo più veloce per raggiungermi.

Scrivimi una email LinkedIn

federico.barbieri99@gmail.com