Performance

40% Bundle Reduction Across 15+ Apps

A systematic approach to performance optimization that reduced APK sizes by 40%, improved cold-start times by 25%, and achieved 99.3%+ crash-free rates across the entire app portfolio.

2023-2025 Android / Kotlin / Java 10 min read
-40%Bundle Size
-25%Cold Start
-60%ANR Rate
99.3%+Crash-Free

The Challenge

Managing performance across a portfolio of 15+ production Android apps spanning FinTech, MLM, Crypto, and Enterprise domains presented a unique challenge. Each app had its own architecture, dependencies, and performance profile. Some were built with Java, others with Kotlin, and a few were mid-migration. Target devices ranged from flagship phones to budget hardware common in India's tier-2 and tier-3 cities.

The team was shipping features fast but accumulating performance debt. APK sizes had ballooned due to unused resources and duplicated dependencies. Cold-start times crept up as initialization logic grew. ANRs (Application Not Responding) spiked during complex data operations that blocked the main thread.

The Approach

Phase 1: Measurement Framework

You cannot optimize what you don't measure. I established a performance baseline framework across all apps:

Phase 2: Bundle Size Optimization

Achieving the 40% bundle size reduction was a combination of multiple techniques applied systematically:

Phase 3: Cold-Start Optimization

Reducing cold-start time by 25% required understanding what happens between the user tapping the icon and seeing useful content:

Phase 4: ANR Elimination

ANR reduction required a disciplined approach to threading:

Results

Key Learnings

Performance optimization at portfolio scale is fundamentally a process problem, not a technical one. The individual techniques — R8, Baseline Profiles, coroutines — are well-documented. The hard part is creating systems that apply them consistently across 15+ apps maintained by multiple developers with varying experience levels.

The most impactful decision was making performance a CI gate rather than a periodic audit. When every PR automatically reports APK size delta and startup time impact, performance becomes everyone's responsibility rather than a quarterly fire drill.

Android ProfilerLeakCanaryR8/ProGuard Baseline ProfilesMacrobenchmarkFirebase Performance App BundlesCoroutines