Ahmad HassanFull-Stack AI Engineer
WorkDecisionsStackExperienceContactWriting
Hire me
Ahmad HassanLahore, Pakistan
EmailWhatsAppLinkedInGitHub
© 2026 Ahmad Hassan · Full-Stack AI Engineer in Lahore
Selected workEasyQuranAriaRetrivo VaultLeadForge AIRetailFlowNoteMindFitMind AIThe Copper LarderMindScribeSpendSmartFitTrack
Ahmad Hassan/Work/Aria02 of 11

AI booking assistant · Prime Coworking

Aria

An AI booking assistant that owns none of the booking logic.

Role
Product engineering at Prime Coworking
Context
Built on the company’s e-Booking system, a multi-tenant SaaS booking & scheduling product
Focus
AI · Web

Internal product at Prime Coworking — source is not public.

1515
tool-calling functions
4040
message bounded history
4×4×
retry with backoff
11
public endpoint

Overview

A conversational booking layer on top of Prime Coworking’s e-Booking product. Customers chat in any language — “need an appointment tomorrow after 5” — and Aria resolves the service and staff, offers real open slots, and books, reschedules or cancels. Aria owns no availability or booking logic: the booking engine stays the single source of truth and Aria is a pure orchestration layer, so the assistant and the product’s own booking widget can never drift apart.

What it does

  • Multilingual chat that resolves service, staff and real open slots
  • Books, reschedules and cancels through the product’s own domain services
  • Every booking change gated behind an emailed OTP, with a name-and-phone-match fallback
  • React 19 iframe chat widget — focus-trap accessibility, abort-on-unmount, server-owned state
  • MongoDB conversation memory with orphan-turn protection

Engineering decisions

01

The model orchestrates; it never owns the truth

Each of the 15 tools wraps the exact domain service the e-Booking widget already calls, so there is no second copy of the availability logic for the AI to disagree with.

02

A public endpoint still needs teeth

The booking API is unauthenticated by design, so mutations are OTP-gated, rate-limited per IP, locked after repeated bad attempts and written to an audit log — and the prompt’s integrity block means a customer can’t talk their way past any of it.

03

Provider-neutral LLM layer

Gemini 2.5 Flash today, swappable tomorrow — the tool loop never imports a vendor SDK directly.

Stack

Backend
NestJSTypeScriptMongoDB
AI
Gemini 2.5 FlashTool callingProvider-neutral layer
Client
React 19Iframe widget
Next projectRetrivo Vault →The research assistant that only knows what you’ve read.