Go gives developers compile-time safety through its type system, and flexibility through interfaces. Sometimes, interfaces just aren’t flexible enough. Sometimes, you just want to write some code that isn’t safe at all. James talks about the outlaw packages of Go: reflect and unsafe. You’ll learn just enough about Go’s type system to understand how reflect and unsafe subvert it. Finally, he shows practical examples of using reflect, and some impractical examples of using unsafe.