Skip to main content

Performance Scorecards

Benchmark cards per project and the playbook behind them.

← Manifesto

Weavr Financial SDK

View project
Cold start (ms)Target

< 1500

Lazy init of SDK modules, baseline profiles for critical path, minimal work in Application.onCreate.

Binary size (SDK AAR)Target

< 3 MB

R8/ProGuard rules to strip unused code; avoid heavy transitive deps; optional features in separate artifacts.

Crash-free users (%)Representative

> 99.5

Strict mode in debug, crash reporting with symbolication, regression tests on core flows before release.

ANR rateTarget

< 0.05%

Work off main thread; startup trace and frame metrics; background restrictions for sync and heavy work.

Paytm Mobile Banking

View project
Cold start (ms)Target

< 2000

Baseline profiles, deferred non-critical init, image pipeline and font loading optimized.

App size (download)Representative

Representative: reduced 15–20% over 2 years

R8 full mode, App Bundles, on-demand delivery for non-core features, asset optimization.

Crash-free users (%)Representative

> 99.5

Automated UI and unit tests, staged rollouts, crash bucketing and fix-on-release discipline.

Network efficiencyRepresentative

Representative: fewer redundant calls, smaller payloads

Batching, GraphQL or field selection, compression, caching with stale-while-revalidate.

Angel One Trading App

View project
Cold start (ms)Target

< 2500

Lazy init of trading and WebSocket stack; baseline profiles; minimal work before first frame.

App sizeRepresentative

Representative: controlled growth with modularization

Feature modules and on-demand delivery; R8; regular size regression in CI.

Crash-free users (%)Representative

> 99.3

Instrumentation and strict mode; crash reporting; ANR detection and attribution.

ANR rateTarget

Target: < 0.1%

Background thread for market data and sync; startup and frame budgets; trace-based monitoring.

INDmoney Personal Finance

View project
Cold start (ms)Target

< 2200

Lazy init of aggregation and sync; baseline profiles; lightweight first screen.

App sizeRepresentative

Representative: kept flat despite new features

Modularization, R8, App Bundle, removal of unused libs and assets.

Crash-free users (%)Representative

> 99.5

Room and sync tested in isolation; crash-free as release gate; staged rollouts.

Performance Playbook

Principles I apply to hit and sustain performance targets.

  • Define and measure SLOs (e.g. cold start, ANR, crash-free) and enforce them in CI or release gates where possible.
  • Use baseline profiles (Android) and equivalent optimizations to lock in critical-path performance; regenerate on meaningful code changes.
  • Prefer lazy init and on-demand loading for non-critical path; keep Application and first screen minimal.
  • Instrument startup and key flows with traces; set performance budgets and fail builds or flag when regressed.
  • R8/ProGuard rules must be reviewed and tested; keep rules minimal and document why each keep is needed.
  • Cache aggressively with clear invalidation and staleness rules; use appropriate cache layers (memory, disk, network) and measure hit rates.