Projects

Case Study

SnapLedger

An offline-first Android receipt ledger with backend sync recovery and Gemini-powered receipt validation.

KotlinPythonJetpack ComposeFastAPISQLAlchemyPostgreSQLGeminiGCP

Overview

Role

Mobile and backend developer

Links

Key Features

  • Local-first saves during backend timeouts and sync failures
  • Optimistic queue with WorkManager reconciliation
  • Gemini 2.5 Flash outputs guarded with Pydantic validation
  • 8 Compose routes with MVVM + StateFlow and sync determinism tests

Gallery

SnapLedger screenshot 1

1 / 7

What I Learned

  • Designed offline-first mobile flows
  • Validated AI outputs with schemas
  • Built CI and nightly evals around real failure modes