I've been thinking about what actually makes a senior Android interview difficult.

At the junior level, a lot of questions have relatively concrete answers:

  • What is a ViewModel?
  • What is the Activity lifecycle?
  • What is a Coroutine?
  • What is RecyclerView?
  • What is MVVM?

But at the senior level, the questions seem to shift from "Do you know this API?" to "Can you reason about a system?"

For example:

Instead of:

What is StateFlow?

You might get:

You have a screen collecting StateFlow from a ViewModel. The underlying data changes frequently, some transformations are expensive, and the user navigates between screens. How would you structure this so you're not doing unnecessary work?

Or:

Your app works well on a fast connection but becomes frustratingly slow on poor networks. How would you design the data layer to provide cached data immediately while synchronizing with the server?

Or:

Crash-free users are high, but ANRs have increased significantly after a release. How would you investigate the problem?

These questions don't really test whether you memorized an Android API. They test whether you understand lifecycle, concurrency, architecture, performance and trade-offs well enough to reason through an unfamiliar problem.

For experienced Android developers here:

What topic do you think is most important for a senior Android interview but is poorly represented in typical interview-prep material?

I'm particularly curious about:

  1. Coroutines / Flow
  2. Compose
  3. Architecture
  4. Performance / memory
  5. Offline-first
  6. Testing
  7. Android system design
  8. Something else

And if you've interviewed candidates recently, what separates a strong senior Android answer from a merely technically correct one?

submitted by /u/yogirana5557
[link] [comments]