Skip to content
All projects

Platform Modernization

Py 3.6→3.12 · Django 2.2→5.2

Multi-version upgrade of the enterprise lending stack — Python 3.6 to 3.12 and Django 2.2 to 5.2 across LMS, LOS and supporting microservices.

Problem

Long-lived platforms accumulate version debt quietly. Nothing breaks, so nothing gets prioritised — until the runtime and framework are years past their supported window, security advisories land against releases that no longer receive patches, and the dependency graph has drifted so far that even routine upgrades stall.

Solution

A staged modernization across the lending stack rather than a long-lived rewrite branch. Versions moved one step at a time with the system deployable at every point, dependencies audited up front, and deprecation warnings treated as build failures so each hop surfaced its own problems instead of deferring them.

My Contribution

  • Led modernization of the enterprise lending stack — LMS, LOS and supporting microservices.
  • Upgraded Python 3.6 → 3.12 and Django 2.2 → 5.2 while keeping releases seamless.
  • Audited and resolved the dependency graph, replacing abandoned packages and removing unused ones.
  • Sequenced runtime and framework moves so each failure stayed attributable to one change.
  • Improved security posture and long-term maintainability across the platform.

Key Features

  • Staged one-version-at-a-time upgrade path
  • Deployable at every step — no long-lived migration branch
  • Up-front dependency audit and replacement
  • Deprecation warnings enforced as build failures
  • Compatibility verified service by service
  • Improved security posture across the stack

Architecture

AuditDependency graph reviewed for maintenance status and target-version support.

The upgrade loop, repeated per version hop until the target is reached.

Technologies

  • Python
  • Django
  • Docker
  • CI/CD
  • ECS
  • Celery

Impact

  • Enterprise lending stack brought onto current Python and Django releases
  • Improved security posture and dependency maintainability
  • Seamless releases throughout, with no feature freeze

Want to talk through the details?

Happy to go deeper on any of the engineering decisions here.

Get In Touch