Andrew Thompson

Author of Lager and Gen_smtp, Rebar and Riak Contributor

Andrew has been doing Erlang since 2008, first in the VoIP world writing mod_erlang_event for FreeSWITCH, and using that to build an open-source call center platform called OpenACD. After that, Andrew was a Senior Engineer at Basho working on Riak and from there he moved to the IoT world at Helium. At Helium Andrew has built several Erlang powered platforms over the years culminating in building Helium's decentralized, distributed IoT network.

Past Activities

Andrew Thompson
Code BEAM SF 2019
01 Mar 2019
11.25 - 12.10

Erlang logging for the 21st OTP

In 2011, Andrew released lager and in 2012 he gave a talk at Erlang Factory SF explaining why he wrote it and comparing it to all the alternatives available at the time. A lot has changed since; most of the old competitors to lager have fallen out of usage, Elixir now exists and has its own logger and now, with OTP 21, Erlang finally has a new logger in the standard library. This talk will revisit the Erlang logging scene and compare all the modern alternatives.


Help Erlang users decide on which logging framework to use and why.


People who want to log from their Erlang/Elixir application but are confused by all the choices.

Andrew Thompson
Code BEAM Europe 2022
19 May 2022
16.25 - 17.10

Erlang for Untrusted Decentralized Systems

Erlang is commonly used for distributed systems on a trusted substrate (when all the nodes are run by a single party) but what about when multiple parties who don't necessarily trust each other want to work together? This talk will discuss some of the technologies Andrew has implemented at Helium to build distributed systems on an untrusted substrate at Helium including HoneyBadgerBFT, threshold cryptography, distributed key generation and peer to peer networking.


Educate Erlang developers on the alternatives to traditional distributed systems development on the BEAM.


People interested in alternatives to distributed Erlang, decentralization, cutting edge cryptography or untrusted consensus systems.

Andrew Thompson
Code BEAM SF 2018
15 Mar 2018
12.25 - 12.50

Bridging The Physical and Blockchain World With Erlang

We're over a decade into the era of the IoT and it still hasn't really arrived. Data privacy, data ownership, network coverage & access, technical fragmentation, vendor longevity and hardware costs are still big obstacles to large deployments. People have great ideas for making the world a better place with more connected devices; they just still can't turn their ideas into reality.

We're sick of waiting and we've decided to take a radical new approach: build all the components for a decentralized, cooperative internet of things network and give it to the world as open hardware and software; no royalties, no patent licenses, no strings attached. To make this work, we've designed a new network infrastructure centered around low-cost software defined radio gateways that use a blockchain with a novel radio-based proof-of-work replacement to create and a maintain a world-wide IoT network. Crucial to making this work is a way to allow gateways and end devices owned by anyone to work together without any pre-established trust. This is where blockchain technology comes in. Helium is building a blockchain from scratch in Erlang to help build the future of IoT and we want to show it to the world.


Show how to design and build blockchains in Erlang including what went right, what went wrong and the supporting tools and libraries we've had to build along the way. We will also touch on software defined radio, radio protocols and modulation, cryptography and peer-to-peer networking.


Anyone who wants to help cut the Gordian knot of IoT deployment, people interested in software defined radio or low-power/long range radio networking, blockchain enthusiasts, embedded developers.