Skip to content
← All work
Complex Systems

Investigating and Stabilizing a Decade-Old Academic Publishing System

Investigated an unfamiliar, decade-old Open Journal Systems installation to diagnose database issues, PHP compatibility problems, and recurring HTTP 500 errors.

The Challenge

An existing Open Journal Systems installation — a large, unfamiliar PHP codebase with years of accumulated data — was throwing intermittent HTTP 500 errors and had suspicious database records that needed investigation, with no one on hand who understood the original setup.

My Role

Entered the system cold: investigated the database structure, traced the source of the errors, and worked across development and production environments on DigitalOcean to stabilize it.

Approach

Started by reproducing the errors in a separate development environment rather than debugging live, then worked backward from server logs to the specific PHP compatibility issues and database inconsistencies causing them. Cleaned up unwanted database records methodically, restored from backups where necessary, and reconfigured PHP versions and SSL/domain settings to bring the environment back to a stable, supportable state.

Technical Challenges

The codebase had no documentation of prior changes, so every fix had to be verified against real behavior rather than assumptions. Database cleanup carried real risk — publication records had to be preserved exactly while still removing corrupted or unwanted entries.

Outcome

The platform was stabilized without data loss, with a documented, repeatable environment in place for future maintenance instead of an opaque, undocumented one.