Mikalai SiliukMS Development
All case studies
Case Study

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

1,000+
Daily Active Users (Amplitude, 90d rolling)
3,000+
Calls per Month (Agora RTC telemetry)
99.7%
Uptime (Firebase health checks, 90d)
+40%
Revenue growth, 90d after V2 (Stripe)
01

The story

Problem

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.

Solution

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.

Impact

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.

02

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

03

Engineering challenges

The hardest problems I solved — and how.

💰Three Monetization Models Running in Parallel

Problem

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.

Solution

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.

Result

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

Problem

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.

Solution

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.

Result

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

Problem

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.

Solution

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.

Result

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.

04

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

05

Tech stack

Client
FlutterDart 3.8Android NativeiOS Native
Backend
Node.jsTypeScriptCloud FunctionsFirestoreFirebase AuthFCM
Integrations & Services
Agora RTCStripe ConnectAdaptyBigQuerySendGridAmplitudeCustomer.ioAppsFlyerCrashlyticsRemote ConfigVoIP PushAPNs
Project Under NDA — Details Anonymized

Product names and client information have been removed to comply with non-disclosure agreements. Available for detailed technical discussion upon request.