I've practiced the Score Keeper kata, in kotlin.
- Start with a baby-steps solution
- Implement the basic behaviour, until we need a scaffold
- Refactor to introduce a more general solution, using parallel change
- Keep adding features
- When feature complete, re-design the application so it uses another component. This makes it easier to test, as the tests themselves are not coupled to the implementation
A boilerplate for kotlin + gradle + mockito + junit 4 + arrow, shadowjar/uberjar. Customized to my taste.
Find it here: https://github.com/alvarogarcia7/gradle-kotlin-boilerplate