Kotlin is a great language for creating internal DSLs. Although it is statically typed, some of its features, such as type-safe builders, extension functions, operator overloading, implicit receivers, etc. make the creation of internal DSLs a rewarding experience. We will explore some existing DSLs, and look under the hood to see how we can tailor the same principles to our needs.
The slides are available here.