Our strategy was to intermingle it with our existing projects. Tests is a good place. But better yet was to write new pure-data types as Kotlin data classes. Then replacing existing data types. This gave us a good understanding of the tools and the runtime overheads without too much of a syntactic learning curve. Before long, more logic gets written in Kotlin. Before long the penny drops – with Kotlin I can write more correct and maintainable code, faster, with minimal runtime overhead. Now, for my home projects, I’m writing the full stack in Kotlin.