Pre-West Interview: Zach Tellman

Talk: Everything Will Flow

Zach Tellman's talk at Clojure/West is about applying Queueing Theory to Clojure code.


Zach Tellman is known for his philosophical talks. They connect a broad range of ideas. This talk is about Queueing Theory, which has its roots in telephone network analysis. Since core.async channels are essentially queues, knowledge of how queues behave is fundamental to using the library well.

The Wikipedia page on Queueing Theory is informative. There is kind of a longer lecture if you're interested in going for an hour on the topic. Finally, I recommend this talk from the React conference, which touches on queueing theory in computer systems.

About Zach Tellman

Homepage - GitHub - Twitter

This interview was graciously conducted by Nola Stowe. She's a programmer, the co-founder of DevChix, and a prolific teacher. She recently ran ClojureBridge Austin. Please shout out to her and say thanks!


Zach Tellman is the next interview participant. He is giving a talk at Clojure/West about queueing theory and its applications. The background to his talk is available, if you like.

Interview with Zach Tellman

Nola: How long have you been doing Clojure and how did you get into it?

Zach: About six years, four years professionally. I started looking at Clojure around the time Tom Faulhaber (author of clojure.pprint, and some other stuff), who I worked with at the time, invited Rich Hickey to give a talk at our office. It was on chunked seqs, if I recall correctly, and way over my head. But it got me interested, and here I am.

Nola: Any suggestions for someone wanting to dive into Clojure?

Zach: I've always learned by doing. I'll come up with a project, and learn what I need to know on the way. The more it forces you to learn, the better. My first project in Clojure, which I started the same week I read Stu Halloway's Clojure book, was way over-ambitious, but I learned a ton doing it.

Nola: What languages did you do before Clojure?

Zach: In school, C++ and Java. For work, C# and Java. In my own time I've poked at Erlang, OCaml, Ruby, and a few others.

Nola: Can you describe a good use-case for Clojure that you see has an advantage over another language?

Zach: Clojure's a data-oriented language, it excels at taking data in one shape and transforming it into another. While this isn't all we do in our day-to-day software, it's an awful lot of it. Lately, though, I've been interested in the problems that fall outside of that category, which is in part what my talk is about.

Nola: Emacs or Vim or ?? Can you describe your typical workflow?

Zach: I use Emacs, where I know about five commands, plus paredit. I don't particularly like it, but I don't dislike it enough to switch to something else.

Nola: Thanks for the interview. It was very informative.