Mursalin
  • Home
  • About
  • Projects
  • Growth
  • Pricing
  • Blog
  • Contact
Sign In
Visit Store
Hire Me
  • Home
  • About
  • Projects
  • Growth
  • Pricing
  • Blog
  • Contact
  • Visit StoreHire Me
  • Sign In
Mursalin

Freelance AI product developer building AI agent SaaS, AI-powered mobile apps, and MVPs for clients worldwide — from Rajshahi, Bangladesh.

Rajshahi, Bangladesh · UTC+6

hello@mursalinsdesk.comWhatsApp +880 1738 753102

GitHubX (Twitter)LinkedInWhatsApp

Navigation

  • Home→
  • About→
  • Services→
  • Pricing→
  • Projects→
  • Hire Me→
  • Blog→
  • Store→
  • Contact→

Services

  • AI Agent SaaS Products→
  • AI-Powered Mobile Apps→
  • MVP Development→
  • AI Integration & Automation→
  • Full-Stack Web & SaaS Platforms→
  • AI Strategy & Fractional CTO→

Get in Touch

hello@mursalinsdesk.comBook a Call

© 2026 Mursalin's Desk. All rights reserved.

Privacy PolicyTerms of Service
Virtual Client — Multi-Tenant AI Voice Coaching Platform
In ProgressEdTech / Corporate Training

Virtual Client — Multi-Tenant AI Voice Coaching Platform

Teams rehearse live conversations against AI personas and get rubric-scored feedback.

A B2B SaaS platform for real-time voice-AI coaching. Teams practise live conversations against AI personas powered by Gemini Live, then receive rubric-scored feedback generated with OpenAI and Anthropic models. Running in multi-org production with roughly 2,500 practice sessions delivered.

Role: Full Stack Engineer
Client: Ayana Dev Studio
Team: Team of 5 developers
Started: November 2025
~2,500
Practice sessions
Delivered across organisations in production
90+
Rules unit tests
Guarding tenant isolation in CI
8
Collections hardened
Migrated to strict tenant-scoped rules

The Challenge

The platform served multiple organisations from shared Firestore collections, so a single mis-scoped security rule could expose one client's practice sessions to another. Tenancy could not be verified by reading the rules alone.

The Approach

Migrated eight critical collections to strict tenant-scoped rules in two safe steps so live traffic was never broken, then locked the result behind 90+ security-rules unit tests and an emulator-driven harness that fails CI on any misconfiguration before it can reach production.

Key Features

Real-time voice roleplay against configurable AI personas (Gemini Live)
Rubric-scored feedback generated by OpenAI and Anthropic models
Multi-tenant organisation isolation across eight Firestore collections
Two-step security-rule migration performed with zero downtime
90+ security-rules unit tests plus an emulator-driven test harness
Team and per-user session history with progress tracking
Scope:Multi-tenancy hardening, security-rule migration, voice pipeline integration, evaluation scoring
Tech Stack

Built With

ReactViteTypeScriptExpressFirebaseFirestoreFirebase AuthCloud FunctionsGemini Live APIOpenAI SDKAnthropic SDKTailwind CSSVitest

Challenges & Solutions

Challenge

Providing low‑latency, two‑way voice interaction for dozens of simultaneous learners while keeping costs under control.

Solution

Implemented a Vercel Edge Function that acts as a thin proxy to the Gemini Live API. The function streams audio chunks directly to the client, avoiding a full round‑trip through the backend. Tenant IDs are attached to each request and used to select the appropriate API credential stored in Firebase Remote Config. To prevent overload, a simple token bucket limits concurrent streams per tenant, and excess connections receive a polite retry response. This design keeps latency under 300 ms for 95 % of sessions and scales with Vercel’s automatic edge replication.

Challenge

Ensuring strict data isolation between organizations in a shared Firestore database.

Solution

Created a top‑level collection named "tenants" where each tenant ID hosts its own sub‑collections for users, sessions, and rubrics. Security rules check the requester's custom claim against the tenant ID in the document path, rejecting any cross‑tenant access. For writes that affect many documents (e.g., bulk rubric updates) used batched writes limited to 500 operations per batch to stay within Firestore limits. Added composite indexes for common queries like "sessions where score > 80 and tenant = X" to keep query times under 200 ms.

Challenge

Scoring learner responses against complex rubrics without slowing down the user experience.

Solution

Moved the scoring logic to a Cloud Function triggered by Firestore writes. The function reads the rubric definition from a cached collection (stored in Firestore with a 5‑minute TTL) and runs the evaluation in parallel using Node 20 worker threads. Results are written back to the session document, and a Pub/Sub topic notifies the frontend via TanStack Query's subscription hook. This off‑loads heavy computation, reduces front‑end latency to under 150 ms, and keeps the function cost under $0.02 per thousand evaluations.

Challenge

Rendering dashboards that show performance metrics for thousands of learners without freezing the browser.

Solution

Adopted TanStack Query with infinite scrolling and server‑side pagination for the learner list. Aggregated cohort statistics (average score, completion rate) are pre‑computed in a nightly Cloud Function and stored in a separate "metrics" collection. The dashboard fetches only the aggregated numbers and the current page of learners, then feeds the data into Recharts components that are lazy‑loaded with Vite's dynamic import. This approach caps initial bundle size at 120 KB and keeps frame rates above 55 fps on typical laptops.

Gallery

Project screenshot
Project screenshot
Project screenshot
Project screenshot
Multi-tenantProductionTest-hardened

Explore This Project

View Live Demo →

Need something like this?

I build products like Virtual Client — Multi-Tenant AI Voice Coaching Platform for clients worldwide

The closest package is AI Agent SaaS Products: fixed price, fixed scope, built from Rajshahi, Bangladesh and delivered remotely. Tell me what you are building and I will say which tier fits.

See the AI Agent SaaS Products packageStart a conversation

Related Projects

Founders — Reputation Economy for Founders
In Progress

Founders — Reputation Economy for Founders

Credit-metered peer feedback, AI-scored reviews, and launches with public show-up rates.

Next.js 16React 19NestJS+11
DetailsDemo
MedScribe — Prescription Platform for Doctors
In Progress

MedScribe — Prescription Platform for Doctors

Prescriptions your patients can actually read.

Next.jsTypeScriptPostgreSQL+3
DetailsDemo
Contently AI — Multi-Model Social Content SaaS
Completed

Contently AI — Multi-Model Social Content SaaS

AI‑powered social content built fast, published faster

Next.jsTypeScriptTailwind CSS+9
Details
←Back to All Projects