The engineering notebook
RSS feedGood software.
Lessons from building it.
Deep dives into Flutter and Dart, with notes from across the stack. Architecture, backend systems, cloud, and AI - from the work behind the code.
By Ashish Bhakhand 108 published articles
All articles
108 articles
Reliable Webhooks with Authentication, Deduplication, and Reconciliation
Turn provider callbacks into durable, idempotent state changes that remain correct across retries and delayed events.
Safe MongoDB Writes with Unique Indexes and Atomic Upserts
Replace check-then-write races with database-enforced uniqueness, conditional updates, and deliberate duplicate handling.
Analytics Without Polluting Every Flutter Screen
Create typed analytics events, consistent properties, multiple provider adapters, and testable tracking without vendor calls throughout widgets.
Rendering Shareable SwiftUI Cards with ImageRenderer
Export crisp, predictable social images with fixed canvases, reusable components, and transparent rounded corners.
Building Resumable Backfills Instead of One Giant Sync
Process historical data in bounded windows with durable progress, overlapping retries, and idempotent writes.
Cross-Feature Boundaries in a Modular Backend
Let each feature own its truth and communicate through explicit ports and events instead of importing another feature's internals.
Deep Linking into Nested TCA State
Translate a URL into application intent, select the right tab, and restore the destination state it requires.
Secure Storage and Shared Preferences Solve Different Problems
Choose the correct Flutter storage for tokens, preferences, onboarding flags, cached filters, and session-related data.
Testing Room Migrations Instead of Hoping They Work
Upgrade real historical schemas and verify both data preservation and new database invariants.