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.
Jeff Bezos: Staying in "Day 1" on Purpose
Jeff Bezos: Staying in "Day 1" on Purpose Jeff Bezos's annual shareholder letters, written every year of his time as Amazon'
Lesson 30: Publishing Your App to the Google Play Store
Publishing Your App to the Google Play Store This is it — the last step. You've built a complete app across 29 lessons; let'
Lesson 29: Signing Your App and Creating a Release Build
Signing Your App and Creating a Release Build Every app installed on a real device must be cryptographically signed. Here's how to generate your
Lesson 28: App Icons, Themes, and Preparing for Release
App Icons, Themes, and Preparing for Release Your app works. Before publishing it, let's make it look like a finished product rather than a
Lesson 27: Testing Your App: Basics of Unit Testing
Testing Your App: Basics of Unit Testing You've built a real app across the last 26 lessons. Now let's make sure it
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
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.