Professional summary
Full-stack software engineer, strongest on the frontend, shipping production systems for a hospitality software company since 2023. 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 payment confirmation flow.
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 payment confirmation flow — 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 (card gateway / wallet / discount behind one provider interface), and react-hook-form + Zod over inconsistent legacy payloads. I also led a security and tenancy audit of the multi-tenant surfaces; findings were remediated before release.
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 payment confirmation
Beforepayment-gateway callbacks can arrive more than once, and a confirmation has to be recorded exactly once.
Aftera payment-lock keyed by a unique transaction code and an explicit state machine (pending → paid → confirmed | failed) that no-ops on replays and checks the downstream result before confirming.
Resulta payment is confirmed only once its booking is confirmed; replayed callbacks are ignored.
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 (card gateway / 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
Beforemulti-tenant data isolation and request validation had not been adversarially reviewed.
Afterled a security and tenancy audit of the multi-tenant surfaces, reviewing data isolation and the request path end-to-end.
Resultfindings remediated before release; data isolation and request validation hardened.
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.
bookable.itshassan.itgithub.com/hassan-akkari/laboratoire/tree/main/apps/booking-service
laboratoire — React 19 / TypeScript monorepo
Solo pnpm + Turbo monorepo. Built the server-side core of a Next.js App Router booking flow — zod-validated inputs, 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; 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: a payment-lock keyed by a unique transaction code and an explicit state machine (pending → paid → confirmed | failed) that no-ops on retransmitted gateway callbacks and checks the downstream result before confirming.
- 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 (card gateway / 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.
- Hardened multi-tenant data isolation and led a security and tenancy review of the request path end-to-end; findings were remediated before release.
- 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.
Case studies:Eliminating a cross-request HttpClient header race in productionLeading a gradual Razor-to-React migration without stopping a live productTurning a monolithic BFF into feature-owned slices without changing a contract
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.