Kotlin is a new programming language that targets JVM, Android and JavaScript. It is 100% interoperable with Java and avoids NullPointerExceptions. Some key features include lambda expressions, immutable val properties, smart casting, and named arguments. Kotlin code can use existing Java frameworks and libraries. Data classes, sealed classes, and when expressions make the code cleaner. Best practices include using apply() for object initialization and named arguments instead of method chaining.