Film2Home
Context
Film2Home was a Video-on-Demand company and a subsidiary of Bonver. After Film2Home went bankrupt it was acquired by Magine TV, which kept running the platform under both the Film2Home and Plejmo brands.
From 2014 to 2017 I worked on these services as a fullstack developer and also did the DevOps work. The platform was ASP.NET MVC applications with EPiServer for content, plus backend services for catalog, payments, user accounts and content metadata.
Problem
- A traditional n-tier architecture that struggled under load
- Manual deployments that took about an hour and were error-prone
- Third-party integrations for payments and metadata that were getting harder to manage
- No API for the new clients that were on the way
Approach
Architecture
- Introduced CQRS to separate reads from writes
- Moved parts of the system to a service bus architecture on Azure Service Bus
- Moved third-party integrations into separate services
Backend development
- Built and maintained ASP.NET MVC and ASP.NET Web API applications with C#, NHibernate and SQL Server
- Designed and implemented version 1 of Plejmo's REST API
- Built a gamification proof of concept (levels and achievements) on top of the service bus
Frontend development
- Built UI features in JavaScript, jQuery and KnockoutJS
- Worked with the designers and editors using EPiServer
System integration
- Built and maintained integrations with metadata and payment providers
- Built REST and WCF services for internal and external consumers
Automation & DevOps
- Set up automated builds and deployments with Octopus Deploy
- Managed IIS configuration across environments
Results
- Deployment time went from about an hour to under two minutes, with virtually no deployment errors
- Better performance under load after moving from n-tier to the service bus architecture