Backend · Architecture — 2025 · ongoing
VUCOS — Multi-tenant OTT Platform
Modernizing the .NET platform behind a whitelabel IPTV/VOD service — while it runs.
- Role
- Senior Fullstack Engineer · Platform Architecture
- Timeline
- May 2025 — present
- Stack
- .NET 10 · ASP.NET Core · Kafka · Redis · EF Core · Elasticsearch · React Native
01 — Problem
A TV platform that had grown for years
VUCOS delivers live TV, VOD, program guides, and DRM-protected streaming to multiple operators as a whitelabel platform — apps on mobile, TV, and web, backed by a .NET codebase of 66 projects that had accumulated years of growth: legacy error handling, an aging runtime, and a monolith wanting to become services.
02 — Role
Architecture on a moving train
I architect the .NET platform — authoring the architecture decision documents for the authentication server, licence server, and service decomposition — while staying hands-on: platform APIs in .NET, and features in the Expo/React Native app (TV guide, navigation) when the frontend needs a hand.
03 — Approach
Modernize without stopping broadcast
Everything ships incrementally against a live service. I redesigned platform-wide error handling to RFC 7807 — 227 throw-sites migrated onto a central error catalog, so every client (mobile, TV, web) gets consistent, typed error contracts instead of parsed strings.
I designed Redis-backed distributed session revocation (instant logout across devices), multi-provider OAuth (Google, Microsoft, Apple), and led the .NET 6→10 migration with Central Package Management — including a 41-project legacy cleanup.
The backbone: Kafka for async messaging, Redis for sessions and caching, Elasticsearch for search, all documented in decision records so the next engineer inherits reasons, not folklore.
04 — Outcome
A platform ready for its next decade
One modern runtime across all 66 projects, consistent error contracts for every client, instant session invalidation, and a documented path from monolith to services. The platform modernized without viewers noticing — which is the point.
- 66
- projects on one modern runtime
- 227
- throw-sites migrated to RFC 7807
- 5
- architecture decision documents