Case  —

Scale coaching
without scaling chaos.

The platform needed to grow classes and revenue without outages eating margin. I rebuilt core backend, frontend, and cloud so operations stayed dependable and product changes shipped with confidence.

Mockup design of an e-sport coaching platform built by Emil Rosenius

The client

A Danish e-sport coaching company connected players with in-house coaches across titles like Overwatch, League of Legends, Counter-Strike, Valorant, and Fortnite. Players signed up for teams matched to their skill level; coaches ran sessions while the business handled subscriptions, scheduling, and payments through the product.

The problem

I joined to maintain an existing software suite-a backend, a standalone frontend application, and a WordPress marketing site. The first months were maintenance and incremental features in that stack, but it became clear the architecture would not carry the next phase of growth.

In mid-2020 we agreed on a full rebuild: a single product that could onboard more players, keep day-to-day operations reliable, and give the team room to ship without firefighting. I led the build in collaboration with designer Nicolai Qvindbjerg, who shaped the UX across onboarding, subscriptions, and the customer dashboard.

Atmosphere  —

A universe
of gaming.

Fortnite character
Overwatch character
League of Legends character
Counter-Strike character

What I did


Infrastructure

I moved the platform to AWS in a multi-AZ VPC-separate instances per environment, created from snapshots for easy teardown and recreation. The database runs on RDS for point-in-time restores and automatic failover. Uploads go to S3 and are served through CloudFront; async work runs through SQS. Git hooks drive CI/CD for automatic deployments, and with queues and persistent data off the app host, the application layer stays stateless.


Backend

The backend is Laravel on PHP 7.4-a practical choice for session-based auth, payment flows, job queues, and a content layer without building everything from scratch.

It hosts the core business logic: a client-facing REST API, a private marketing API, payment integration, asynchronous job processing, and internal tooling for the team.


Frontend

The customer-facing app is Nuxt.js-server-rendered Vue with sensible defaults so we could focus on product rather than boilerplate configuration.

Three domains make up the experience: an onboarding flow that guides new players toward the right team, a subscription and training dashboard for customers, and an authentication layer that ties them together.

Onboarding  —

An engaging
experience.

Screenshot of game selection in the coaching platform onboarding flow
Screenshot of team selection in the coaching platform onboarding flow
Screenshot of shopping cart overlay in the coaching platform onboarding flow
Screenshot of checkout page in the coaching platform onboarding flow

Customer dashboard  —

Managing your
subscription.

Screenshot of the coaching platform login screen
Screenshot of a team page in the coaching platform dashboard
Screenshot of a team sign-up form in the coaching platform dashboard
Screenshot of profile settings in the coaching platform dashboard

Results

The rebuild replaced a fragmented three-part stack with one product the team could operate and extend. Bookings, subscriptions, and coach workflows ran through a single backend instead of patching gaps between separate systems.

Stateless app hosts, managed database failover, and automated deployments meant outages stopped being a regular operational tax. Product changes could ship on a predictable cadence rather than waiting for fragile manual steps.

The onboarding flow turned sign-up into a guided path-game, team, cart, checkout-so new players reached a booked session without getting lost in the product.

Looking for
the right developer?

Whether you're ready to start or just exploring your options, feel free to reach out. No commitment, no pressure.

I usually respond within 2 hours.

11+ years of experienceBased in Copenhagen