This document provides an overview of Kotlin and coroutines. Kotlin is a statically typed language that runs on the JVM, Android and browsers. It features null safety, expressiveness, and full interoperability with Java. Coroutines allow writing asynchronous code that looks synchronous and avoid callback hell by running multiple async computations simultaneously using less memory than threads. Coroutines are lightweight and cooperative rather than preemptive like threads, and are managed by dispatchers instead of mapping to OS threads directly.