Personal project · 2026
Legacy app modernisation – this portfolio
Brought a 2020 Flask site on a deprecated runtime up to Python 3.12 and Flask 3, with HTTPS, an enforced security policy, passwordless sign-in, per-user storage and a 200+ test suite.
At a glance
- Assess
- Plan
- Upgrade runtime
- Harden
- Build new features
Context
The site ran on Python 3.8 and App Engine's deprecated python39 runtime, so it could no longer be redeployed. Several pages were broken or slow.
Problem
Make it deployable and safe again without a rewrite, then build new products on top of it.
My role
Assessment, plan and implementation.
Approach and architecture
- Written assessment first (architecture, security, bugs, dependencies, UX), then numbered plans
- Runtime upgrade to Python 3.12, Flask 3 and App Engine python312
- HTTPS everywhere, HSTS, CSRF protection and an enforced Content Security Policy
- Passwordless sign-in (Google, Microsoft, LinkedIn); one private folder per user
- Automated tests for every fix, run before each change
Stack
- Python 3.12
- Flask 3
- pandas 2.2
- Authlib
- pytest
- Google App Engine
- Cloud Storage
- Secret Manager
Outcome
- Apriori demo request time cut from 4.7 s to 0.36 s
- 200+ automated tests
- Responsive layout with WCAG AA colour contrast