Gameplay Learner
An American football learning platform built for teams, coaches, and players to create, manage, teach, and practice gameplays. The platform supported role-based team management, gameplay learning workflows, spaced repetition, subscription management, and both web and mobile experiences.
Case study
Overview
Served as the Technical Lead for the modernization and productionization of an inherited Next.js-based American football learning platform. The platform helped players learn team-specific gameplays created by coaches and team administrators using a spaced repetition approach. It included a web application for Team Admins and coaches and a dedicated mobile experience for players. Led the technical assessment of the existing codebase, source-code recovery, environment setup, application stabilization, architecture review, AWS deployment, database improvements, containerization, and CI/CD modernization.
Case study
Problem
The client had spent months and years with a previous development team but did not have a stable, deployable product and had only seen the application running on the developers' machines. Recovering the source code itself took considerable effort, followed by extensive dependency, configuration, environment, and build issues that prevented the application from running reliably on a new development environment. The immediate business priority was to get the application hosted on AWS. During the technical review, we also identified architectural concerns around subscription management, where a custom SDK was being used to manage subscription methods and store subscription data in MongoDB despite the highly relational nature of the data and the need for transactional consistency.
Case study
Solution
First recovered and gained control of the inherited source code and resolved the dependency, configuration, environment, and build issues required to make the application reproducible and deployable outside the previous developers' machines. The initial production deployment was established on AWS EC2 to provide the client with a working hosted application. During the architecture review, subscription-related relational data was redesigned and moved from MongoDB to MySQL/Aurora to provide stronger relationships, data integrity, transactional consistency, and ACID guarantees while retaining Stripe for payment processing. The application was subsequently containerized using Docker, automated CI/CD was introduced with GitHub Actions, and the infrastructure was later modernized from EC2 to AWS ECS serverless architecture with AWS CodePipeline in collaboration with the DevOps team.
Architecture
System overview.
The platform consisted of separate Next.js-based frontend and backend applications with dedicated application and data layers. AWS S3 was used for object storage, Aurora RDBMS for relational application and subscription data, SES for email delivery, SNS for notifications, and IAM for access control. Docker was used for application containerization and GitHub Actions supported automated CI/CD during the initial modernization phase. The first production deployment was established on AWS EC2 and was later migrated to AWS ECS serverless architecture with AWS CodePipeline in collaboration with the DevOps team. Stripe handled payment processing while subscription and relational business data were managed through Aurora/MySQL.
Implementation
Key features.
Media
Screenshots & details.
Technical decisions
Challenges & solutions.
Recovered and gained control of an inherited codebase after the client had been unable to obtain a stable working product from the previous development team.
Resolved extensive dependency, configuration, environment, and build issues to make the application reproducible and deployable outside the original developers' machines.
Established the first stable AWS deployment on EC2 as the immediate priority so the client could finally access the application in a production environment.
Identified architectural limitations in the inherited custom subscription SDK and its MongoDB-based data model during technical review.
Redesigned and migrated subscription-related relational data from MongoDB to MySQL/Aurora to better support relationships, transactional consistency, data integrity, and ACID requirements while retaining Stripe for payment processing.
Containerized the application using Docker and implemented automated CI/CD workflows using GitHub Actions.
Led the technical transition from EC2 to AWS ECS serverless architecture with AWS CodePipeline in collaboration with the DevOps team.
Improved the inherited architecture incrementally without unnecessarily rewriting the entire application, balancing technical improvements with delivery timelines.
Outcome
Measured impact.
- — Converted an inherited application that previously only worked on the original developers' machines into a deployable production system.
- — Established a stable AWS hosting environment and production deployment process.
- — Improved data integrity and transactional reliability by moving subscription-related relational data to Aurora/MySQL.
- — Introduced Docker-based containerization and automated CI/CD for more consistent and repeatable deployments.
- — Modernized the infrastructure from EC2 to AWS ECS serverless architecture for improved scalability and operational flexibility.
- — Established a stronger technical foundation for continued product development and future scaling.