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
How I Structure a Production Jetpack Compose Application
Organize Android code by feature while keeping UI, state, storage, health, and network responsibilities visible.
Responsive Flutter Is About Constraints, Not Devices
Learn how to build Flutter layouts that work on phones, tablets, desktop windows, and nested panels by responding to available width.
How I Structure a Large SwiftUI Application by Feature
Keep state, views, domain rules, and data implementations close to the product capability they serve.
TypeScript Types Disappear at Runtime: Validate API Boundaries with Zod
Static types cannot protect a running API from malformed input. Learn how Zod turns untrusted payloads into safe application data.
State Management in Flutter: Choosing the Right Level of Structure
Learn when setState is enough, when state should move out of a widget, and how Provider, Riverpod, and BLoC differ in real Flutter projects.
Better Dart Models with Enums: From Safer States to Rich Domain Types
Replace fragile strings with type-safe Dart enums, use exhaustive switches, and learn when enhanced enums make Flutter code clearer-and when they do not.
Clean Architecture in Flutter Without the Boilerplate
A practical Flutter architecture using models, repositories, view models, and widgets-with clear boundaries and only as much structure as the feature needs.
Clean Architecture and SOLID: A Practical Foundation for Maintainable Software
Learn what Clean Architecture and SOLID actually solve, how their ideas reinforce each other, and when the extra structure is worth the cost.
Mastering Null Safety in Dart: A Practical Guide for Flutter Developers
Learn how Dart's type system, flow analysis, null-aware operators, and API design work together to prevent null errors in real Flutter applications.