
Legacy Ticketing System Rescue: Clearing Backlog, Performance, and Security Issues
In June 2024, a former client approached us with an urgent problem. Their event ticketing system, previously maintained by an external vendor, had deteriorated significantly after being brought in-house. The system faced frequent outages during peak ticket-sale periods and had accumulated a substantial bug backlog. With a deadline of roughly six months to turn the situation around, we accepted the challenge.
However, the initial codebase assessment revealed technical debt far worse than anticipated:
- Running on unsupported Django 2.1 with outdated dependencies
- Inconsistent, duplicated code implementations where similar features were coded differently without purpose
- Minimal test coverage, with only 50% of existing tests passing
- A perplexing infrastructure setup with three redundant Nginx instances, suggesting fundamental misunderstandings of containerization and Kubernetes principles
Our six-month rescue effort focused on three key areas:
- Modernization: We upgraded all dependencies to supported versions, replacing or removing unnecessary ones. Some dependencies were so superfluous that their original purpose remained unclear. Others required complete in-house rewrites.
- Code Quality: We unified components to resolve permission-related bugs and implemented comprehensive testing for critical paths. Many bugs stemmed from inconsistent behavior across different user permission levels.
- Infrastructure: We streamlined the deployment architecture, eliminating redundant services and optimizing for high-traffic periods.
By the year-end deadline, we had achieved all objectives: clearing the entire bug backlog, achieving zero downtime during peak traffic periods, and dramatically improving the system's maintainability.