Blog

Field Notes

Event-driven architecture, money correctness, security, and everything else that only shows up once real users' money is on the line. Written from 3+ years building fintech apps in Flutter.


Money CorrectnessSep 10, 2024 · 4 min read

Why double Will Break Your Fintech App (and How We Handle Money in Dart)

Floating-point money bugs aren't exotic edge cases — they're a predictable consequence of how double works, and they show up in almost every fintech codebase at least once. Here's the pattern that prevents them permanently.

→
Offline & ResilienceSep 6, 2024 · 2 min read

A Queue That Tags Every Offline Action With a Client-Generated Idempotency Key

An offline action queue that retries blindly will eventually double-submit a transfer. The fix isn't smarter retry logic — it's making every queued action safe to replay.

→
Event-Driven & Real-TimeSep 3, 2024 · 8 min read

Event-Driven Architecture in Flutter: Real-Time Balance Updates Without Polling

Why polling a balance endpoint every few seconds is the wrong default for a financial app, and the event-driven pattern that replaces it — including the sequence-gap recovery logic most tutorials skip.

→
Security & ComplianceAug 30, 2024 · 2 min read

A One-File Wrapper Around flutter_secure_storage That Fails Closed, Not Open

When secure storage throws — a Keystore invalidated by a fingerprint change, a Keychain error after a restore — most apps quietly fall back to a default. That default should never be 'logged in.'

→
Regulation WatchAug 27, 2024 · 3 min read

RBI Names FACE as Fintech's First Self-Regulatory Body: What It Means for App Teams

In August 2024, the RBI granted self-regulatory-organisation status to FACE. It's an industry-body announcement, not a direct app requirement — but it usually ends up in your onboarding and grievance flows anyway.

→
Money CorrectnessAug 23, 2024 · 2 min read

A Money Extension Type That Makes 0.1 + 0.2 == 0.3 Fail Loudly, Not Silently

Dart's extension types turn a money precision bug from a runtime surprise into a compile error, at zero runtime cost. Here's the pattern.

→
Release WatchAug 20, 2024 · 3 min read

Flutter 3.24: What's Actually Useful for a Fintech Team

Flutter 3.24 made Impeller the default renderer on Android. Here's what that actually changes for an app full of live charts and balance animations, and what to skip.

→
Event-Driven & Real-TimeAug 16, 2024 · 2 min read

A Five-Line StreamController Wrapper That Prevents 'Add After Close' Crashes

The guard we add to every StreamController in a Flutter fintech app, and why checking isClosed once at the top of a function isn't enough.

→

Archive

Earlier posts, originally published on Medium before the blog moved natively to uzg19.com.

Publication

UZG19 on Medium

medium.com/uzg19

→

New posts, twice a week.

Get an email when a new one drops. No spam, unsubscribe anytime.