Tim McGilchrist


Master Commander of Big Data at Ambiata

Tim McGilchrist began his career as a mere midshipman, with some experiences in the exotic lands of Erlang, Lisp and OCaml. He developed a liking for the rough sailor life, strong types and a tot of rum. He quickily progressed to more daring exploits in distributed systems and contrarianism which gained him the promotion to lieutenant. After some gruelling service where he was blockaded at Brest using un-mentionable non-FP languages, he was offered a promotion to Master and Commander of Big Data at Ambiata. Once there, he met a number of gizzled Haskell verterans and went to work on special operations in infrastrure, machine learning and big data.

YOW! Lambda Jam 2014 Brisbane

RAFT: Implementing Distributed Consensus with Erlang


Increasingly systems are required to include ideas from distributed systems to achieve their goals of availability, performance and maintenance. As people dive into the distributed systems literature, they often have problems with finding practical information about building distributed systems. With this in mind, RAFT is an algorithm for providing distributed consensus that focuses on providing an understandable and more easily implemented solution for people building distributed systems.

Erlang/OTP is programming languages that focuses on concurrency, fault tolerance and building massively scalable soft real-time systems. It’s only natural we’d want to build a distributed algorithm with such a language.

In this talk we’ll look at:

  • the need for distributed consensus,
  • understand how RAFT works, and
  • show how RAFT can be implemented in Erlang/OTP

Building an Erlang system from scratch

You’re all excited by this new language that you’ve just started learning, you’ve read the book, done some examples and got the t-shirt. Now to build something real in it. Often in learning a new language it’s not the language itself that’s the problem, it’s all the other things like build tools, tests, deploying, libraries and dependencies that get in your way. Pretty soon you’re frustrated with all this other stuff and give up implementing your next great idea.

In this workshop we’ll start with a basic stub of an erlang project and build up a working system in Erlang. Our great idea will be a Url shortening service built in Erlang using Webmachine. We’ll look at how OTP can be used to architect a reliable system, cover webmachine concepts like HTTP as a state machine and understand how erlang is build and deployed.


  • Working Erlang R16 system
  • Modern Web browser, ideally Chrome
  • Unix environment or VM (OSX / Linux ideally)
  • Some familiarity with Erlang would be nice but not required.