Angular 8 to 18 while the old app kept shipping
Planned and led the migration across more than ten business modules, from users and permissions to asset mapping and self-service registration. Restructured the code into a monorepo with ESLint-enforced feature boundaries, standalone components, OnPush and lazy loading, and kept it in sync with production fixes that were still landing on the old app.


