That’s a nice list, but I would say that some “junior” questions should be moved into “mid” tier. And “mid” tier is actually lacking the concept of “how” or “why” something works the way it does.

Should junior know about volatile to do his job well? Or cite by heart the difference between .let/.apply/.run? I think not.

But from mid developer, on the other hand, I would expect to understand why extension function work the way they do, for example, and maybe even explain the concept of receiver object. Or, to elaborate on the reason why you can create thousands of coroutines, but not thousands of threads.

Solutions Architect @Depop, author of “Hands-on Design Patterns with Kotlin” book and “Web Development with Kotlin” course