Paytm Insider: offline POS and app performance

Senior Android Engineer2024Jun 2022 - Jul 20241 min read

Worked on offline-first POS for events with 5K-50K footfall, reduced consumer app size by 36%, and cut Events module startup by 4 seconds.

  • 36% smaller
    Consumer app size
  • 4 seconds faster
    Events cold start
  • 5K-50K
    Event footfall

Figures are reported in my resume. Footfall describes event attendance, not a concurrent-user benchmark. App-size and startup results belong to the consumer app, not POS.

My contribution

  • Helped architect the offline-first POS app, including caching and near-real-time synchronization.
  • Reduced consumer app size by 36%.
  • Improved Events module cold-start time by 4 seconds.
  • Worked on feature flags, analytics, and error logging.

Overview

My work at Paytm Insider covered two areas: Android POS for live events and performance improvements in the consumer app.

Problem

Event operations couldn't depend on a steady network. Separately, the consumer app needed a smaller download and a shorter wait at startup.

Constraints

  • Venue connectivity could be unreliable while staff were serving queues.
  • Cached data needed to synchronize when connectivity returned.
  • Performance changes had to fit an existing consumer app.

Approach

  • Designed offline behavior and caching around event operations.
  • Worked on near-real-time data synchronization.
  • Optimized consumer app size and Events startup.
  • Added production visibility through analytics and error logging.

Implementation notes

Offline-first POS

Reasoning

The app needed to remain useful when a venue's connectivity was unreliable.

Cache and synchronize operational data

Reasoning

Offline operation and up-to-date event data both mattered.

Tech stack

  • Kotlin
  • Android
  • Caching
  • Synchronization
  • Feature flags
  • Analytics

Result and impact

The POS work supported event operations with unreliable connectivity. The consumer-app work reduced download size and startup time.

Learnings

  • Offline behavior needs to match how staff actually use the app at an event.
  • App size and one module's startup time are different measurements and need clear scope.