Real-Time Companion
Communication Platform
Millions of people experience daily loneliness with no one to talk to. Existing solutions felt impersonal — chatbots, forums, anonymous helplines. I led delivery of a platform that connects people with live human companions for real conversations through text, audio, and video — available anytime, on any device. Today, over a thousand users rely on it every day.
My roleLead mobile developer · Architecture · Release owner · Under NDA
The story
Loneliness among older adults is a growing crisis — but existing digital tools feel cold and impersonal. People don't need another chatbot. They need a real human voice on the other end, someone who remembers them and is available when they need to talk.
A three-product ecosystem: a mobile app where users find and talk to matched companions, a web panel for companion operators to manage conversations and shifts, and a cloud backend orchestrating real-time messaging, video calls, payments, and scheduling — all working as one seamless experience.
Thousands of users engage daily. Over 3,000 audio and video calls per month. Average conversation length: 18 minutes — evidence of genuine human connection, not superficial interactions. The platform sustains a network of paid companions with automated payouts and performance-based earnings.
What I built
Three interconnected products sharing the same real-time infrastructure.
Mobile App
Flutter · iOS & Android · 450 files · 49K LOC · 32+ screens · Clean Architecture, MVVM
Web Panel
Flutter Web · Operator & supervisor dashboard · 283 files · 49.5K LOC · Provider + MVVM
Cloud Backend
Node.js · TypeScript · 129 files · 62.5K LOC · 80+ Cloud Functions · 26 collections
Engineering challenges
The hardest problems I solved — and how.
💰Three Monetization Models Running in Parallel
The business evolved its pricing three times — from token-based billing to tiered subscriptions with daily limits to moment packs. But thousands of existing users were on older plans. Every version had to keep working.
Built a version-routed payment pipeline: webhooks from Stripe and Adapty feed into a unified PaymentEvent processor that routes to the correct handler based on the user's monetization version. Pending events handle purchases made before registration.
Zero billing errors during migrations. All three models coexist seamlessly. New pricing experiments can be launched without touching legacy code. Revenue grew 40% in the 90 days after V2 launch (Stripe + product analytics, MRR).
📞Reliable Real-Time Calls at Scale
Audio/video calls are the core product — but calls can hang, users can lose connection, and balance can run out mid-conversation. A single dropped call can lose a paying user permanently.
Implemented a heartbeat watchdog that monitors every active call server-side. Auto-terminates calls when balance is exhausted (with grace periods for short calls under 60s). VoIP push ensures incoming calls ring natively even when the app is closed.
Call completion rate above 97% across 3,000+ monthly calls. Zero orphaned sessions. Average call duration of 18 minutes — users trust the system enough to have real conversations, not quick check-ins.
⚖️Performance-Based Companion Earnings
Companions are paid workers, not volunteers. The business needed to incentivize quality — rewarding high engagement, penalizing policy violations — while keeping payouts fair, transparent, and automated.
Designed an internal currency system (Earning Coins) with activity multipliers, moderation penalties, and a full audit ledger. Connected to Stripe Connect for automated bank payouts with transfer history and rate tracking.
Fully automated payout pipeline — companions see transparent earnings in real time. Moderation penalties reduced policy violations by ~35% within 60 days of rollout. Supervisor review cases dropped significantly after launch.
Feature highlights
Real-Time Messaging
Firestore-powered chat with media, reactions, search, favorites, and companion notes
Companion Matching
7 filter parameters, 13 skill categories, smart routing with A/B tested paywalls
Shift & Schedule System
Start/stop/break tracking, day-off management, shift change requests, presence monitoring
4-Role Access Model
Companion, supervisor, admin, superadmin — each with distinct UI and permission boundaries
Composite Analytics
Unified SDK for Amplitude, Customer.io, AppsFlyer, Facebook Events + BigQuery exports
Push & Deep Links
FCM, APNs, VoIP Push, local notifications, deep link routing from push and attribution
In-Chat Activities
Interactive games and exercises inside conversations — start → play → complete → rate
Multi-Environment CI
Stage / Prod with separate Firebase projects, API keys, product IDs, and deploy pipelines