Joe Armstrong

Co-creator Erlang, Trainer, Author

Joe Armstrong is a retired computer scientist. He got his grey hairs inventing Erlang, starting a few companies, writing a few books, doing some research and teaching people to program.

Joe Armstrong's talk:

Intertwingling the Tiddlywiki with Erlang

Ted Nelson, who coined the term "Hypertext" also coined the lesser known word "Intertwingled" - this captures the idea that all there is, is knowledge which is tangled up and linked together in a myriad of complex ways.

Computer scientists think that we can organise knowledge in a systematic way but Nelson thought this was impossible. All there is is knowledge and links.

A Tiddlywiki is a self-contained system that organises data in a non-hierarchical manner allowing it to be read and authored in a non-linear manner.

This talk will go through the evolution of hypertext, following the evolution of ideas from Vannevar Bush to Ted Nelson and thence to the World Wide Web.

Our goal is to extend the boundaries of the Tiddlywiki to a larger distributed system, that's where Erlang comes in.

We'll talk about the problems encountered in turning small consistent data collections of dense knowledge into larger distributed systems with sparse knowledge.


Stimulate discussion and make people think

Joe Armstrong's tutorial:

Thinking Concurrently

13:30 - 17:00

How do systems built in Erlang, Elixir or any other BEAM Language differ from other systems? To start with:

  • They are designed from the bottom up to run 'forever.’
  • They are designed from the bottom up to expect, and recover from errors.
  • They are expected to evolve.
  • They scale seamlessly

How is all of this achieved?

The answer is simple - by making systems from sets of isolated communication processes, and by treating errors and code as first class objects that can be sent in messages over a network.

In this tutorial, Joe Armstrong will introduce what he calls the `Erlang way of thinking.` He will cover:  

  • Basic data types
  • Sequential Programming
  • Concurrent Programming

In Basic Data Types & Sequential Erlang he’ll introduce the foundations and talk about Modules, Functions and Pattern Matching. Once you've understood the basic pattern matching mechanism the rest is easy. In concurrent programming he'll talk about processes and their life span. You will look at sending and receiving messages, selective reception, and passing data in the messages. Joe will conclude this section by introducing the simple but powerful error handling mechanisms in processes which help detect and isolate failure. Time permitting, he will also cover distribution, showing you how, by doing it right form the start or with very few changes, you can write a program intended to run on a single VM and distribute it in a cluster.


To learn the Erlang way of thinking when architecting and developing systems.


Developers and Architects interested in the principles which make Erlang, Elixir or other BEAM based languages unique.

All Media with Joe Armstrong

Joe Armstrong Interviews Alan Kay - Code Mesh 2016

Keynote - Distributed Jamming with Sonic Pi and Erlang - Joe Armstrong and Sam Aaron - EUC17

5 Hobby Projects - Joe Armstrong

Keynote: The Forgotten Ideas in Computer Science - Code BEAM SF 2018

Keynote: The Forgotten Ideas in Computer Science - SLIDES - Code BEAM SF 2018
Joe Armstrong

Slides for the Joe Armstrong's talk "The Forgotten Ideas in Computer Science" - Code BEAM SF 2018