Curriculum Vitae

Vue profil localisée, optimisée pour l'impression et l'export rapide.

Curriculum Vitae · 07/2026 · en — it — fr — de

Résumé professionnel

Software engineer full-stack, plus fort sur le frontend, avec ~2,5 ans a livrer des systemes en production pour une entreprise de logiciels hospitality. Je dirige la migration page-by-page d'un SaaS de gestion multi-tenant de Razor/jQuery legacy vers React 19, et je possede end-to-end les surfaces paiement, kiosque et marketplace d'une plateforme e-commerce — dont un flux de paiement Nexi exactly-once sur un downstream non idempotent.

Actuellement: Je dirige la migration React 19 du Portal, je possede les surfaces paiement, kiosque et marketplace de Network — dont le flux de paiement Nexi exactly-once — et je fais tourner le workflow d'engineering AI-augmented de l'equipe sur Claude Code.

Impact

  • Flux de paiement Nexi exactly-once

    Avantun downstream non idempotent renvoyait parfois des reponses "HTTP 200 mais echouees", au risque de confirmer des paiements sans reservation reelle.

    Aprespayment-lock + machine a etats MediatR (pending -> nexi_paid -> confirmed | failed) qui ne fait rien sur les replays et se protege contre les reponses "HTTP 200 mais echouees".

    Resultataucun paiement confirme sans reservation reelle, meme sous callbacks rejoues ou concurrents.

  • Frontend React 19 en trois SPA independantes

    Avantune seule surface monolithique melait marketplace, kiosque et landing de devis sans frontiere claire.

    Aprestrois SPA independantes (marketplace / kiosque / landing devis) sur Redux Toolkit + RTK Query, avec refresh 401 single-flight, paiement ports-and-adapters et react-hook-form + Zod.

    Resultatcontributeur principal et premier auteur par volume de commits, de zero a la production.

  • Migration SaaS multi-tenant sans reecriture big-bang

    Avantun SaaS de gestion legacy en ASP.NET MVC / Razor / jQuery impossible a moderniser d'un seul coup.

    Apresmigration page-by-page vers React 19 derriere un backend-for-frontend, avec un route manifest qui decide SPA-navigate ou full-reload.

    Resultatmigration incrementale sans big-bang, pipeline durcie contre les bundles obsoletes.

  • Audit de securite et de tenancy (IDOR + CSRF)

    Avantun claim tenant filtre sur la ligne et non via un join parent, et un token CSRF jamais re-verifie.

    Apresaudit systematique des chemins d'acces et de la validation cote serveur sur les surfaces multi-tenant.

    Resultatacces cross-tenant IDOR et token CSRF emis-mais-jamais-valide decouverts et documentes.

  • Framework d'engineering AI-augmented (Claude Code)

    Avantla review dependait de la disponibilite d'equipe et manquait le drift cross-stack.

    Apresinstructions par layer, subagents a outils restreints et orchestration plan-first ou un humain approuve avant toute modification.

    Resultatpipeline repetable, trois bugs de paiement latents trouves avant la release.

Projets sélectionnés

Bookable — Multi-Style Booking Platform

Plateforme de reservation full-stack live : un seul modele de contenu rendu dans trois design systems commutables a l'execution, un flux de demande de reservation valide et un dashboard admin securise.

Next.js 16 / React 19 / Drizzle ORM / Neon Postgres / iron-session / Zod

laboratoire — monorepo React 19 / TypeScript

Monorepo personnel pnpm + Turbo. Construit le core server-side d'un flux de reservation sur Next.js App Router — order processing idempotent, re-validation des prix cote serveur et un webhook Cal.com avec verification HMAC timing-safe — derriere une auth admin iron-session et une CI gate sans secrets.

Next.js / TypeScript / Drizzle ORM / Neon Postgres / Vitest

Expérience

Software Engineer — Network (e-commerce hospitality) · React 19 · ASP.NET Core 10

Sibylla S.r.l. — Network / Rome, Italie / Mar 2025 - Present

  • Livraison du flux de paiement Nexi exactly-once sur un downstream non idempotent : payment-lock + machine a etats MediatR (pending -> nexi_paid -> confirmed | failed) qui ne fait rien sur les replays et se protege contre les reponses "HTTP 200 mais echouees", de sorte qu'aucun paiement n'est confirme sans reservation reelle.
  • Architecture du frontend React 19 en trois SPA independantes (marketplace, kiosque, landing de devis) sur Redux Toolkit + RTK Query, avec refresh 401 single-flight et paiement ports-and-adapters (Nexi / wallet / remises derriere une seule interface provider).

Software Engineer — Portal (SaaS de gestion multi-tenant) · React 19 · ASP.NET Core · BFF

Sibylla S.r.l. — Portal / Rome, Italie / Sep 2023 - Present

  • Direction de la migration page-by-page d'un SaaS de gestion multi-tenant legacy (ASP.NET MVC / Razor / jQuery) vers React 19 derriere un backend-for-frontend, avec un route manifest qui decide SPA-navigate ou full-reload.
  • Audit de securite et de tenancy : mise en evidence d'un acces cross-tenant IDOR (claim tenant filtre sur la ligne et non via un join parent) et d'un token CSRF emis mais jamais valide.

Frontend Developer · Stage

BetterTogether S.r.l. / Rome, Italie / Oct 2022 - May 2023

  • Front-end pour la facturation automatique (B2C / B2B2C) avec HTML, CSS, JS et C# / ASP.NET MVC.
  • Integration des API Aruba pour la facturation electronique et refactor du code legacy avant livraison.

Formation

Level 3 Diploma · Computing

HCUC (Harrow, Richmond, Uxbridge College) / Londres, Royaume-Uni / Sept 2019 - Juin 2021

Fondations logicielles, concepts data, bases du développement web.

Diplôme technique · Informatique

ITIS Leonardo da Vinci / Rome, Italie / Sept 2009 - Juin 2014

Diplôme technique italien quinquennal en informatique; fondations de programmation, bases de données, networking.