Case study

Virtual Trainer

Co-founded and built a cross-platform fitness product with React Native clients, a .NET API, Azure infrastructure, and an in-app AI trainer grounded in each user's training context.

React Native.NET CoreAzureSQL ServerCosmos DBLLM
Virtual Trainer

Problem

My co-founder and I wanted to build the kind of product we could not find in the market: something that behaved like a credible personal trainer instead of a generic workout tracker. Most alternatives had weak programming quality, clumsy workout flows, or poor progress visibility. The product needed to feel fast during training, trustworthy in its recommendations, and usable over long training cycles.

Approach

I led product and engineering implementation across the mobile experience and backend platform. On the client side, I built the React Native experience around a training-domain model for routines, workouts, exercises, timers, warmups, supersets, and history. I also built a configurable dashboard with O(1) widget placement and per-user caching so personalized reporting stayed responsive. For guided workouts, I implemented automatic progression logic modeled on practical coaching heuristics. I later extended the product with an in-app AI trainer that answers questions using the user's own training context instead of generic fitness advice.

Architecture

The mobile apps are built in React Native and communicate with a C# .NET API designed around clear domain boundaries and fast interaction paths. I set up Azure infrastructure using SQL Server for relational workout and account data, Cosmos DB for document-shaped use cases, and Service Bus to decouple asynchronous processing such as supporting services and notifications. The frontend balances local UI state, shared global state, and server-state synchronization so the app stays responsive across complex workout flows.

Tradeoffs

The product sits at the intersection of training logic, personalization, and AI assistance, so capability can quickly become complexity. Automatic progression and generated programming needed guardrails so the app could adapt without making unsafe jumps or muddy recommendations. Supporting both SQL Server and Cosmos DB also adds operational cost, so I kept storage boundaries explicit and used asynchronous workflows where they improved responsiveness without hiding important user feedback.

Outcome

Virtual Trainer shipped to the App Store and Google Play with routine and workout generation, guided training flows, progress reporting, custom exercise support, automatic progression, and an in-app AI trainer. It also validated an end-to-end stack I designed and operated in production: mobile clients, backend services, cloud infrastructure, asynchronous workflows, and product decisions that kept those systems cohesive for users.