David Tanzer introduces Clojure and ClojureScript, discussing the language basics and some libraries useful for writing real applications.
Stuart Halloway discusses the design of core.async and some of its capabilities: channels, put and take, go blocks, alts! and alts!!, timeouts, showing their use through code.
Christophe Grand tells Clojure stories full of immutability, data over behavior, relational programming, declarativity, incrementalism, parallelism, collapsing abstractions, local state and more.
Thomas Kristensen describes the overall architecture of Composer, a system for composing musing, showing how to build a system that achieves responsiveness while still being flexible.
Robert Martin argues that Clojure is a replacement for C with its simple syntax and minimal semantics.
Mario Aquino discusses the structure and organization of Clojure's Lisp syntax as well as special forms in the language for declaring data structures.
Glen Peterson uses the Expression Problem to compare refactoring in Java, Scala and Clojure, showing how traits minimize changes in Scala when an interface changes and how Clojure avoids some issues.
Timothy Baldridge introduces Clojure’s Core.Async library, presenting the motivation behind the library and examples in Clojure and ClojureScript helpful to decouple subsystems in an application.
Stuart Sierra discusses various Clojure features: protocols, records, DI, managing startup/shutdown of components, dynamic binding, interactive development workflow, testing and mocking.
Deepak Giridharagopal discusses "immutable infrastructure", PuppetDB and complex invariants, PuppetDB’s architecture, the experience of bringing Clojure to a Ruby shop and lessons learned from that.
Jon Neale, Ragnar Dahlen discuss the challenges dealing with large Clojure legacy code at uSwitch.
Renzo Borgatti discusses implementing parallel solutions with reducers in Clojure, doing live coding that show what functional abstractions are involved and why.