Kotlin provides many features that make your code look like a domain-specific language. These features make Kotlin an excellent choice in cases where we want to express program logic declaratively. The approach is already adopted in many tools and frameworks: you can describe build logic in Gradle with Kotlin, Spring WebFlux uses syntax features for its APIs, etc. This session will teach you how to create type-safe DSLs in Kotlin. We will look at a few practical examples and produce a simple DSL.