Rich Hickey
Programmer Media

Rich Hickey is the creator of Clojure and Datomic. He's a prolific speaker and has a lot of great ideas about programming. His impact on the future of programming is ongoing and extends well beyond Clojure. This is a collection of his talks, interviews, and articles.


Media types

Resource types


Clojure, Made Simple

A transcript is available.

Deconstructing the Database

Hickey discusses the architecture of Datomic, his new database system. The interesting thing about Datomic is that it pulls apart the pieces of the database (storage, indexing, querying, etc.) in order to choose different tradeoffs from what traditional database systems have made. In addition, Datomic is a true record-keeping system: nothing is ever overwritten.

A transcript is available.

Datomic, a Functional DB

Expert to Expert: Erik Meijer and Rich Hickey - Clojure and Datomic

Erik Meijer interviews Rich Hickey about Clojure. He briefly talks about Datomic near the end.

The Architecture of Datomic

An article by Rich Hickey discussing the motivations and broad architecture of Datomic.

Writing Datomic in Clojure

A nice talk about the architecture and implementation of Datomic.

A transcript is available.

Rich Hickey on Datomic: Datalog, Databases, Persistent Data Structures

An interview with Rich Hickey about Datomic.

Rich Hickey on Datomic, Data Storage, Functional Programming and Immutability

Another interview with Rich Hickey about Datomic.

Rich Hickey on Codeq (Cognicast)

Codeq is a system that reads in a Git repo's commit history and puts it into Datomic. You can then query it. Craig Andera interviewed Rich Hickey about it.

Rich Hickey on Datomic, CAP and ACID

Another interview with Rich Hickey about Datomic.

The Design of Datomic

Rich Hickey does a deep dive into the design of Datomic. What problems were they addressing? What decisions did they have to make?

Rich Hickey (Cognicast)

Craig Andera interviewed Rich Hickey shortly after Datomic was released.

Rails Conf 2012 Keynote: Simplicity Matters

Given at RailsConf, this talk dives deep into the meaning of the word simple. Often confused with easy, which is subjective, simple has an objective definition. Simple means not tied together.

Hammock Driven Development

The title is a play on popular "programming methodologies". In this talk, Hickey explains how thinking more and thinking better about a problem can actually develop a better design than structured methodologies like TDD. Problem solving and deep thinking are things humans do well. Hickey dives into how to best use your brain to write programs.

A transcript is available.

Design, Composition, and Performance

I was lucky to be in attendance at Clojure/West when Rich Hickey gave this talk. The title is a double-entendre, but I’ll let you gather the real meaning when you watch it. Just know that it’s one of Rich’s excellent philosophical talks. Sam Garrett has some notes

Another recording: Design, Composition, and Performance

A transcript is available.

Are We There Yet?

Rich Hickey presents the idea that our software needs to explicitly model time. We should be explicit about what will change and how. To do this, we need to make values immutable by default. This model of time is baked into Clojure: immutable data structures plus a model structured model of state change.

A transcript is available.

Time is the New Memory

An interview with Rich Hickey about time.

Clojure for Java Programmers [Part 1]

Clojure for Lisp Programmers [Part 2]

There was a time when there were more Common Lisp programmers than Clojure programmers. This talk explains to the Lispers what made Clojure different and why.

A transcript is available.

SE Radio Episode 158: Rich Hickey on Clojure

Rich Hickey interviewed about Clojure.

Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure

Rich Hickey in discussion about Clojure.

Clojure Concurrency

The famous "Ant Colony" demo where Rich Hickey builds a graphical representation of an ant colony to demonstrate Refs. Each cell in the grid is a Ref.

You can get the slides and see the (

Rich Hickey on Clojure 1.4's Extensible Reader, ClojureScript

In Clojure 1.4, edn was introduced. This talk dives into the motivations and how it compares with other data formats.

Rich Hickey on Protocols and Clojure 1.3

Clojure 1.3 introduced protocols. This is another interview.

Clojure: A Dynamic Programming Language for the JVM

In this very early talk, Rich Hickey goes through a veritable laundry list of Clojure features. It just shows you how far we've come as an industry.

Clojure Spec with Rich Hickey (Cognicast)

Clojure 1.9 will have a new feature called clojure.spec. Craig Andera interviews Rich Hickey about its motivations.

Interview with Rich Hickey creator of Clojure at GOTO Chicago 2013

Rich Hickey interviewed about Java as a host, the open source development process, and what attracts people to Clojure.

Rich Hickey: Geek of the Week

In this article, Rich Hickey is interviewed about programmer productivity, complexity, and Clojure.

Interview with Rich Hickey

Rich Hickey interviewed about Reducers.

Inside Transducers

Implementation details about Transducers and what it takes to make a custom one.

A transcript is available.

Core.async - Communicating Sequential Processes using Channels, in Clojure

Rich Hickey explains the design and motivation of core.async.

Another recording his here.

A transcript is available.

Implementation details of core.async Channels

If you've ever wondered how core.async works under the hood, this video is for you. Short answer: lots of locks. :)

A transcript is available.

Rich Hickey and core.async (Cognicast)

Rich Hickey introduces core.async in the ThinkRelevance podcast (now the Cognicast). He talks about what it does, how it works, and why some of the choices were made.

The Value of Values

In this talk, Rich Hickey evangelizes the use of immutable values instead of mutable objects. He opposes the fundamental idea of Object Oriented Programming, which is to couple data with functionality. Data is cross-platform, stable, and comparable.

Rich Hickey is a force of nature. The mark he will leave on programming will reach much farther than the Clojure programming language. The agenda he is setting forth will have as much impact on the notion of state as McCarthy conditionals had on structured programming.

Please listen closely. The main idea of this talk goes far deeper than "immutable good, mutable bad".

It is wonderful to be a part of this.

A transcript is available.


Rich Hickey explains the design of an audio patch creator.


A nice talk about what transducers are and a little about how they work.

A transcript is available.


Rich Hickey at EuroClojure explaining reducers.

A transcript is available.

Reducers - A Library and Model for Collection Processing

Rich Hickey explains the motivation and implementation of reducers.

A transcript is available.

Perspectives on Clojure and F#

Rich Hickey is interviewed along with Joe Pamer (an F# compiler developer).

Economy Size Geek Interview with Rich Hickey

Another interview of Rich Hickey about Clojure.

Persistent Data Structures and Managed References

Rich Hickey explains his conceptions of value, identity, and state. A great talk about the basics of functional programming in a changing world.

A transcript is available.

ClojureScript Release

Rich Hickey introducing ClojureScript. Back then it was just a budding little language! But this talk goes deep into the motivations for ClojureScript, its relationship to Google Closure, and what parts of Clojure are possible to implement.

Slides are available, as well as a nice writeup by Stuart Sierra.

Rich Hickey on Clojure's Features and Implementation

Rich Hickey interviewed about STM, metadata, multimethods, and more.

Clojure Data Structures [Part 2]

Rich Hickey gave a screencast, largely at the REPL, exploring the data structures of Clojure. It includes numbers, symbols, keywords, strings, and the collections.

Clojure Data Structures [Part 1]

Clojure for Lisp Programmers [Part 1]

A transcript is available.

Clojure for Java Programmers [Part 2]

Way back in the early days of Clojure, Rich Hickey gave classroom style lectures to introduce Clojure to Java programmers. Be careful, some of the language has changed.

The Language of the System

Starting the talk with an obviously dry humor title, Rick Hickey explores the idea of software systems -- multiple programs communicating -- and how the architecture of those systems compares with the architecture of a single program. Within programs, we take a lot of things for granted. Those same things are often the source of errors once machines start failing, networks go down, or versions change. What are the tradeoffs for data formats for communicating? What characteristics should we strive for in the individual pieces of our systems? These questions and more are explored.

A transcript is available.

The Composite Database

A high-level presentation of the architectural design of databases.

The Datomic Information Model

An article by Rich Hickey about the data model in Datomic.

The Database as a Value

Rich Hickey discusses how Datomic revisits the notion of the database. He explores the benefits of making the database an immutable value.

Intro to Datomic

A quick intro to Datomic by Rich Hickey.

Simple Made Easy

A transcript is available.

Maybe Not

Rich Hickey talks about why clojure.spec has failed with optionality: values that may or may not be there. He also discusses why Maybe (or Option) in many statically typed languages is not a solution to the problem he is trying to solve.

A transcript is available.

On Datomic Ions

Datomic Cloud has the ability to run Clojure applications inside the same JVM as your database. It's called Ions and in this talk, Rich Hickey talks about how it works and why.

A transcript is available.


Rich Hickey picks apart the problems with how library dependencies are thought about in the industry. He talks about how Clojure Spec can fit in.

A transcript is available.

Effecting Programs - 10 Years of Clojure

Rich Hickey talks about the reasons he created Clojure and the design problems Clojure was built for.

A transcript is available.

On Clojure Spec

Rich Hickey presents Clojure Spec.

A transcript is available.

The Functional Database

Rich Hickey discusses the design of a database using functional principles.

A transcript is available.

Problem Solving and Clojure 1.9

A transcript is available.