Professional summary
Full-stack software engineer, strongest on the frontend, with ~2.5 years shipping production systems for a hospitality software company. I lead the page-by-page migration of a multi-tenant management SaaS from legacy Razor / jQuery to React 19, and own an e-commerce platform's payment, kiosk and marketplace surfaces end-to-end — including an exactly-once Nexi payment flow over a non-idempotent downstream.
Now: At Sibylla I lead the page-by-page React 19 migration of a multi-tenant hospitality SaaS (Portal) and own the e-commerce platform's payment, kiosk and marketplace surfaces (Network) — including an exactly-once Nexi flow over a non-idempotent downstream — while running the team's AI-augmented engineering workflow on Claude Code.
I architected the React 19 frontend as three independent SPAs (marketplace, kiosk, quote landing) on Redux Toolkit + RTK Query: a single-flight 401-refresh auth layer, a ports-and-adapters payment architecture (Nexi / wallet / discount behind one provider interface), and react-hook-form + Zod over inconsistent legacy payloads. I also led a security and tenancy audit that surfaced cross-tenant access (IDOR) and an issued-but-never-validated CSRF token.
I built the team's AI-augmented engineering workflow on Claude Code — per-layer instruction files, narrow tool-scoped specialist subagents, an orchestration skill that injects the right invariants, and a plan-first process where a human approves before anything mutates; the review subagents surfaced three latent payment-flow bugs before release.
I share approach and impact openly; specific internal details stay out.
Tech philosophy: Solve the problem, then make it hard to repeat — with standards, typed contracts, and adversarial review.
Impact highlights
Exactly-once Nexi payment flow
Beforea non-idempotent downstream booking system risked double bookings and lost confirmations on retransmitted gateway callbacks.
Aftera local payment-lock keyed by a unique transaction code and a MediatR state machine (pending → nexi_paid → confirmed | failed) that no-ops on replays, plus a guard against silent "HTTP 200 but failed" responses.
Resultno payment confirmed without a real booking; double bookings and lost confirmations eliminated.
React 19 frontend as three independent SPAs
Beforethe rebuilt e-commerce platform needed marketplace, kiosk and quote-landing surfaces owned end-to-end.
Afterthree SPAs on Redux Toolkit + RTK Query with a single-flight 401-refresh auth layer, a ports-and-adapters payment architecture (Nexi / wallet / discount behind one interface), and react-hook-form + Zod over legacy payloads.
Resultprincipal contributor and top author by commit volume; booking, cart, checkout, wallet and account from zero to production.
Multi-tenant SaaS migration without a big-bang rewrite
Beforea multi-tenant hospitality-management SaaS was locked in legacy ASP.NET MVC / Razor / jQuery.
Aftera page-by-page React 19 migration mounted behind a backend-for-frontend, with a route manifest deciding per page whether to SPA-navigate or full-reload.
Resultpages move incrementally with no big-bang rewrite; deploy pipeline hardened against stale frontend bundles.
Security & tenancy audit (IDOR + CSRF)
Beforemulti-tenant data isolation and CSRF handling had not been adversarially reviewed.
Afterled a security and tenancy audit, filtering the tenant claim on the row (not via a parent join) and reviewing the request path end-to-end.
Resultsurfaced cross-tenant access (IDOR) and an issued-but-never-validated CSRF token, among other findings.
AI-augmented engineering framework (Claude Code)
BeforeAI-assisted migration was ad-hoc and risked unbounded blast radius.
Afterper-layer instruction files, narrow tool-scoped specialist subagents, an orchestration skill that classifies a task and injects the right invariants, and a plan-first process where a human approves before anything mutates.
Resulta repeatable migration pipeline; read-only review subagents surfaced three latent payment-flow bugs before release.
Selected projects
Bookable — Multi-Style Booking Platform
Live full-stack booking platform: one content model rendered in three runtime-switchable design systems, a validated booking-request flow, and a secure admin dashboard.
laboratoire — React 19 / TypeScript monorepo
Solo pnpm + Turbo monorepo. Built the server-side core of a Next.js App Router booking flow — idempotent orders, server-side price re-validation, and a Cal.com webhook with timing-safe HMAC verification — behind iron-session admin auth and a secretless CI gate.
Experience
Software Engineer — Network (hospitality e-commerce) · React 19 · ASP.NET Core 10
- Principal contributor and top author by commit volume on the hospitality e-commerce platform, rebuilt in-house after prior external development missed requirements; sole author of the quote-payment flow, founder of the React self-service check-in kiosk, and dominant author of the marketplace SPA — booking, cart, checkout, wallet and account, from zero to production.
- Made quote-payment confirmation exactly-once over a non-idempotent downstream: a payment-lock keyed by a unique transaction code and a MediatR state machine (pending → nexi_paid → confirmed | failed) that no-ops on retransmitted gateway callbacks, with a guard against silent "HTTP 200 but failed" responses.
- Architected the React 19 frontend as three independent SPAs (marketplace, kiosk, quote landing) on Redux Toolkit + RTK Query: a single-flight 401-refresh auth layer, a ports-and-adapters payment architecture (Nexi / wallet / discount behind one provider interface), and react-hook-form + Zod over inconsistent legacy payloads. Tested with Vitest and Playwright (e2e + a11y) on an Azure DevOps release train.
- Designed the team's AI-augmented engineering framework on Claude Code (per-layer instruction files, tool-scoped specialist subagents, a plan-first orchestration skill) and built read-only review subagents over the ASP.NET Core / React codebase — surfacing three latent payment-flow bugs before release.
Software Engineer — Portal (multi-tenant hospitality SaaS) · React 19 · ASP.NET Core · BFF
- Leading the page-by-page migration of a multi-tenant hospitality-management SaaS from legacy ASP.NET MVC / Razor / jQuery to React 19, mounted into the existing app behind a backend-for-frontend; a route manifest decides per page whether to SPA-navigate or full-reload, so pages move incrementally with no big-bang rewrite.
- Audited and hardened multi-tenant data isolation (tenant claim filtered on the row, not via a parent join) and led a security and tenancy audit that surfaced cross-tenant access (IDOR) and an issued-but-never-validated CSRF token, among other findings.
- Earlier on Portal: built a reusable CSS class system and shared JS utility files that became the team reference for new pages, reducing duplication across modules; hardened the deploy pipeline against stale frontend bundles.
Frontend Developer · Intern
- Front end for automated invoicing (B2C / B2B2C) with HTML, CSS, JS and C# / ASP.NET MVC.
- Integrated Aruba APIs for electronic invoicing; standardised UI and refactored legacy code before release.
Education
Level 3 Diploma · Computing
Software foundations, data concepts, web development basics.
Technical Diploma · Information Technology
Italian 5-year technical secondary in IT; programming foundations, databases, networking.