Back to Projects

2025

FlashYourMeme

Bug fixes and UI improvements on a live ASP.NET Core MVC app

Requirements & business rules

FlashYourMeme was already live when I joined. My job was to fix existing bugs, replace the page-based content feed with something smoother, and clean up the dashboard UI across multiple content categories. No new features - just making what was there work better.

Technology stack

LanguageC#
FrameworkASP.NET Core MVC
DatabaseFirebase, Firestore

The stack was pre-existing: ASP.NET Core MVC with C# and Firebase. I had seen MVC in school but never really worked with it in a real codebase. This project forced me to actually understand it - not from a tutorial, but by reading live production code and figuring out what it was doing before I touched anything.

Challenges & solutions

01 -Reading a production codebase before touching it

Problem

I was jumping into a live production codebase written by someone else in a stack I hadn't worked with seriously before. Starting to edit without understanding the flow was a reliable way to break things I wasn't supposed to touch.

Solution

Before changing anything, I read through the Model, View, and Controller files for every feature I was going to modify. Traced how a request moved from the route through the controller to the view and back. Only started making changes once I had a clear picture of each flow.

Result

Got the changes done without breaking unrelated features. The upfront reading took longer but the actual edits were fast and clean once I understood what I was looking at.

02 -Replacing page-based pagination with cursor-based loading

Problem

The content feed used numbered page buttons. The client found it clunky and wanted content to load continuously as the user scrolled rather than jumping between fixed pages.

Solution

Replaced the pagination with cursor-based loading using Firestore's startAfter() query method. Each batch stores the last document as a cursor. The next fetch passes that cursor to Firestore to load the next set. No page numbers, no offset arithmetic.

Result

The feed loads the next batch from where it left off. The experience feels continuous and removes the need for any page state tracking.

Results & impact

Fixed the bugs, shipped the cursor-based feed, and tidied up the dashboard over about 1-2 months. The biggest thing I took away from this project was learning how to work in a codebase I didn't write - which is honestly a skill you can only get by doing it.

Screenshots

Screenshot 1