Five years.
That's how long I've been writing Android code. I've survived the transition from Java to Kotlin, from XML layouts to Jetpack Compose, from AsyncTask to Coroutines. I've shipped apps to millions of users, debugged production crashes at 2 AM, and mentored junior developers.
So why am I starting a series called "100 Days to Senior Android Engineer"?
The moment that started this
A few weeks ago, a colleague asked me something that should've been simple:
"Hey, can you explain exactly what happens to a running coroutine when the system kills our process?"
I opened my mouth. I closed it.
I knew the answer — survived state gets lost, ViewModel is gone, onSaveInstanceState is your last checkpoint. I've handled this in production code dozens of times.
But I couldn't explain the mechanism. The chain of events. The why.
That gap bothered me more than I expected.
The real reason seniors go back to basics
There's a difference between knowing how to use a tool and understanding why the tool works the way it does.
After years of solving problems under deadline pressure, I've built up a lot of "muscle memory" — patterns I reach for automatically, solutions that work but whose reasons I've forgotten. That's fine for shipping features. It's not fine when:
- You're designing a system from scratch and need to reason about tradeoffs
- A junior asks "why?" and you realize you don't have a satisfying answer
- An interviewer digs two levels deeper than your prepared answer
The most dangerous knowledge is the kind that feels solid but has invisible gaps underneath.
What this series is (and isn't)
This is not a beginner's guide to Android. I'm not going to explain what an Activity is.
This is a senior engineer going back through every layer of Android development — from the fundamentals up to system design — with fresh eyes and a commitment to actually understanding the why behind every concept.
Over the next 100 days, I'll cover:
| Phase | Days | Topics |
|---|---|---|
| 🏗 Foundation | 1–28 | Android Core, Process/Memory, Kotlin, Coroutines & Flow |
| 🏛 Architecture | 29–49 | Jetpack, MVVM/MVI, Clean Architecture, DI, Modularization |
| ⚡ Compose & Perf | 50–63 | Jetpack Compose deep dive, Performance optimization |
| 🧪 Testing | 64–77 | Testing strategy, Networking, Offline-first |
| 🧩 Advanced | 78–98 | System Design, Security, Soft Skills, Interview Prep |
| 🎯 Finale | 99–100 | Distilled insights from the entire journey |
Every 7th day is a weekly recap — a structured summary of what I covered, what surprised me, and what questions I still have.
The format
Each daily post will follow a consistent structure:
🔍 The concept
💡 What I thought I knew
😳 What I actually learned (the interesting part)
🧪 Code example or mental model
❓ Interview question this maps to
Some posts will be short and punchy. Others — like the ones on Coroutines, Compose recomposition, or System Design — will be longer deep dives.
I'll write about real gaps I discovered, not just textbook summaries. If I already know something cold, I'll say so and move on quickly. If something surprised me, I'll spend more time on it.
Why I'm publishing this publicly
Accountability, mostly.
But also because I've learned that teaching forces clarity. The moment I try to write about something, I discover exactly where my understanding breaks down. Every post in this series is a forcing function.
And if someone else finds it useful — even better.
A note on language
I'm Vietnamese, and some of this material I'll also share in Vietnamese communities. But for Dev.to, everything will be in English, because the technical concepts deserve precise language and I want to think carefully about how to express them.
What's next
Day 2 → The 4 fundamental building blocks of Android — and a question about BroadcastReceiver that trips up more seniors than juniors.
If you've been writing Android for a few years and want to audit your own understanding, follow along. I'd genuinely love to hear where your gaps are — drop them in the comments and I might make them a future post.
This is Day 1 of my 100 Days to Senior Android Engineer series. I publish 3–4 times per week — follow me on Dev.to so you don't miss a day.
Top comments (0)