About experimental, new, and less known but controversial kotlin features or how to write the code so clean that it is hardly understandable, and would anyone do that? In the talk: coroutines, receivers, context receivers, extension methods, and other horrors