{time: MMMM Do YYYY}
Decision:
Name:
Position/Level:
Source:
Location:
Work Auth:
Comp:
Role today/Team Makeup:
Motivation/Target/ideal role:
Activity/Timing:
Communication -
How big is the mobile team there and what was your role?
What problem do Kotlin coroutines solve compared to traditional threads?
Coroutines are lightweight and efficient
Simpler async code (sequential style) without blocking threads, Structured concurrency
What does suspend mean? Does it create a new thread? function can be paused and resumed later without blocking the underlying thread. It does not create a new thread.
What’s the difference between launch and async?
Both start coroutines, but they serve different purposes:
- launch is used for fire-and-forget work. It returns a Job and doesn’t produce a result.
- async is used when you need to return a value. It returns a Deferred<T>, which you can await() to get the result
How did you decide what lived in the ViewModel versus the composable?
Explain state hoisting - moving state out of a child component and into a parent component that owns it. Makes the child component stateless and easier to reuse, test, and maintain.
- Instead of a child view managing its own data, the parent owns the state and passes it down to the child.
- Understands that composables should be mostly declarative
- Has practical experience with previews, testing, lifecycle-aware collection, or performance debugging
- Can describe tradeoffs, not just name APIs
- DI as a way to provide dependencies rather than manually constructing them everywhere
- They know common layers: ViewModel, repository, network client, database, use cases.
- They understand scope roughly maps to lifecycle.
- They can explain tradeoffs without getting lost in jargon.
AI/LLMs
Tell me about a project where AI influenced how you worked or what you built.
When using AI-generated output, how do you decide whether it’s correct or safe to use?