Industry: Multi-tenant POS SaaS for the restaurant industry (MENA)

Role: Tech lead. I owned the architecture across backend, frontend, cloud, and DevOps, did most of the building myself, and managed the team that delivered the platform.

The platform is a multi-tenant POS SaaS that any restaurant operator can sign up to. Each tenant gets its own SQL Server database and its own Keycloak realm for federated identity. Each tenant typically runs a brand hierarchy: a parent group, one or more restaurant concepts, and stores under each concept. The piece I’m proudest of is the tenant onboarding flow. Adding a new tenant kicks off a saga that provisions the database, sets up the Keycloak realm, creates the admin user, and runs migrations across every module. If anything fails along the way, the saga rolls each step back cleanly.

Staff verification runs over WhatsApp instead of SMS, because that’s what the region actually uses day to day. I built the frontend, the CI/CD, and the Terraform infrastructure alongside the backend, so the conventions stay consistent across all of it.

Result: Onboarding a new tenant went from several days of manual setup to one automated workflow. Tenant isolation is enforced at the database layer, not at the row level.

Stack:

  • Backend: .NET, Keycloak, Azure Service Bus, SQL Server (one database per tenant), Redis, SignalR.
  • Frontend: TypeScript, Vite.
  • Infrastructure and DevOps: Terraform, Azure Container Apps, Azure pipelines, GitHub Actions.
  • Quality and ops: Playwright for end-to-end tests, k6 for load, Serilog and Seq for logs.