JN-002 · Republished
Technical Debt and Reviving a 4-Year-Old Application
Software Engineering · Technical Debt · Spontaniius
By Quinn Paterson
First published on Quinn’s personal site; republished here on October 5, 2026. The original publication date is unverified; the earliest repository evidence is February 24, 2025. The plans and project status below reflect the time of writing.
Background
Four years ago, while still in university, I set out to build a social app called Spontaniius, hoping to take it to market. It was an ambitious project and a great learning experience, but life got in the way. Shortly after launching, I moved from Vancouver to Montreal, started a new job, and eventually put the project on the back burner—until it faded into the background.
Now, four years later, I've decided to take another shot at reviving it. Here's what I've learned so far.
Software Erodes
If you leave an Android application untouched for four years, it will break.
- Permissions that once worked? Deprecated.
- Android namespace rules? Changed.
- Plugins I relied on? No longer supported.
The first few days felt like a scavenger hunt through broken dependencies and outdated frameworks.
You Are the New Employee
Having previously worked with unsupported legacy software, it's interesting to do the same with software that you yourself wrote. Four years is a long time—so the ability to “just know” where things are is kind of gone.
As such, I found myself leaning on the same things one would hope for when working with legacy software: structure and documentation.
The structure of my application made bringing it back to life a bit more difficult. I developed this app with some other students at a time when none of us had much professional experience building an Android application. Monolithic architecture, hard coding, and poor navigation handling made reading the old code challenging.
That said, it's nice to see how much I've grown over the last four years.
One thing I was particularly grateful for, however, was documentation. My past self had kept things well documented, which proved incredibly useful in figuring out how things originally worked. Even though the code itself wasn't ideal, it was relatively easy to get a handle on existing APIs and database structures.
Fixing vs. Rebuilding Code
One of the biggest challenges in reviving an old project is deciding what to fix versus what to rebuild.
With technical debt and loose ends everywhere, some components were simply too difficult to patch. More importantly, I knew that maintaining the app in the future would be even harder if I only applied quick fixes rather than making fundamental improvements.
So, rather than jumping straight into debugging, I took a step back to the architecture level. I evaluated whether a fix was sustainable or if a rebuild was the better approach—and more often than not, I leaned toward rebuilding.
This led to key improvements, including:
- Redesigning API endpoints for long-term sustainability
- Refactoring into MVVM architecture for better performance and readability
- Breaking down monolithic components to improve maintainability
The Joys of Automated Testing
I've been writing automated tests for years, and it's always been rewarding to automate systems. That said, the benefit can sometimes feel a bit abstract when writing tests against functioning code.
Writing tests for my own app, however, provided a hands-on demonstration of why it matters.
Given that I was making major structural changes on both the front and back end—often switching entire frameworks—each step introduced a potential series of issues. This is where automated testing shined.
By introducing test coverage, I was able to move much more quickly through various refactorings while having a safety net to catch regressions. Instead of a chaotic debugging process, tests provided a structured, efficient workflow.
The Plan to Relaunch
I'm excited to get Spontaniius back on people's phones soon, and I'm grateful for everything this process has taught me. Hopefully, this time around, it'll gain more traction. Expect another post when it's live!
In the meantime, this is your reminder to go revisit your old projects—you'll be surprised how much they can teach you.
Thanks for reading! Do you have any old projects you've revived or learned from? It'd be cool to hear about them!