Rich Hickey: Programmer Profile

Rich Hickey: Programmer Profile

GitHub - Twitter - LinkedIn

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.

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.

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

A similar article discussion how Datomic is architected.

Writing Datomic in Clojure

A nice talk about the architecture and implementation of Datomic.

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.

Using Datomic with Riak

Rich Hickey speaks about how Datomic uses Riak to store its data, what guarantees it takes advantage of, and how Datomic can provide what it does.

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.

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

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.

Recommended Reading

Rich Hickey created an Amazon book list with books he has recommended. These include influences on the design of Clojure and books about problem solving.

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.

SE Radio Episode 158: Rich Hickey on Clojure

Rich Hickey interviewed 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 code.

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.


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.

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 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.

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.

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.

Areas of Interest for Clojure’s Core

Rich Hickey talked about some of the plans he had for Clojure. Most of this stuff never got into Clojure.

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 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.

Rich Hickey Q&A in Code Quarterly

Michael Fogus interviewed Rich Hickey for the now defunct Code Quarterly. They get into a nice discussion about Rich Hickey's origins as a musician and the nature of complexity.

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.

Strata Conference + Hadoop World Keynote

A high-level presentation of the architectural design of our database.

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.