Build pipeline time
Application size
01 · Smart Apartment Data
Making a large Angular platform faster to build, run and upgrade
The Angular application behind a B2B analytics platform that ships weekly. I cut its build time and size, fixed a slowdown that built up over long sessions, and owned its Angular upgrades across major versions.
- Traced a progressive slowdown to leaked subscriptions and processes that were never terminated
- Simplified the filter, sort and search flows instead of patching them
- Cut what the build has to process before tuning the pipeline
- Angular
- TypeScript
- RxJS
- CI/CD
Problem, decisions and outcome
Problem
Production builds took more than 15 minutes, which slowed every release. Separately, the application became slower the longer someone used it, and no single screen explained why.
What I owned
The build and CI/CD optimization, the performance investigation and its fix, and the Angular upgrades across major versions.
Engineering challenges
- The slowdown had no single cause: it ran through component lifecycles, RxJS subscriptions, routing, and the filtering and search architecture
- Custom directive and routing abstractions kept subscriptions alive after navigation
- Each Angular major version brought breaking changes, dependency conflicts and regressions
Technical decisions
- Simplify the filter, sort and search flows rather than add fixes on top of the abstraction
-
Make subscription teardown explicit, with
take(1)for one-shot streams - Shrink the application first, then tune build configuration
Key work
- Removed heavy and unnecessary dependencies
- Reworked component imports and routing
- Improved build configuration
- Corrected lifecycle handling and terminated leftover processes
- Angular major-version upgrades
Outcome
- Build pipeline: 15+ min → ~5 min, about 67% faster
- Application size: roughly 40 MB → 23 MB
- Long-session slowdown eliminated
- Application running on Angular 22