Notes from a lead mobile engineer.
I write about Kotlin, Jetpack Compose, Kotlin Multiplatform, and the occasional Flutter detour — plus what it actually takes to lead a mobile team without losing the plot. No marketing copy, just what worked (and what didn't).
From the field
Mostly Compose and KMP these days, with the odd leadership post when the code needs a break.
Lesson 26: Background Work: Introduction to WorkManager
Background Work: Introduction to WorkManager Say we want to sync tasks with a server periodically, even when the app isn't open. That's
Lesson 25: Images and Media: Loading Images with Coil
Images and Media: Loading Images with Coil Back in lesson 10, we noted Compose's core library can't load images from a URL.
Lesson 24: Handling Permissions in Android
Handling Permissions in Android Some features — camera, precise location, notifications — require the user's explicit permission, requested at runtime rather than just declared upfront. Step
Lesson 23: Combining Room and ViewModel
Combining Room and ViewModel Let's make tasks genuinely persistent by connecting the Room database from lesson 22 to a ViewModel. The ViewModel, observing the
Lesson 22: Local Storage: Introduction to Room Database
Local Storage: Introduction to Room Database Right now, close the app and your tasks vanish — everything lives only in memory. Room gives you a real local
Lesson 21: Displaying Network Data in a List
Displaying Network Data in a List Let's finish the networking flow properly, with the three states every network-backed screen actually needs: loading, error,
Hey, I'm Ahmad Najar, the person behind this blog.
I lead a mobile engineering team by day and write here by night (well — mostly on weekends, coffee in hand). This blog is where I dump the stuff that doesn't fit in a Slack thread: Compose patterns I keep reaching for, what actually happened when we moved shared logic to Kotlin Multiplatform, and the messier parts of managing engineers instead of just being one.
No sponsored posts, no growth-hacking. Just notes from someone who's still writing Kotlin most days and occasionally still gets paged at 2am.