This document provides an overview of how to do automatic type class derivation using Shapeless. It discusses type classes, HLists, generics, and how Shapeless allows deriving implementations of a Random type class for case classes and sealed traits by exploiting their shape. It provides examples showing how to derive Random instances for products, coproducts, and the spray-json AST in a generic way using Shapeless. Attendees should learn the basic building blocks Shapeless provides and how to apply patterns like this to derive their own type classes.