Garrett Smith

The Functional Tao of Bash
Tutorial: Erlang - Inspiring Software

AI Hacker

The Functional Tao of Bash

The gist of the talk would be to apply functional principles to a bash program and refactor it during the talk. It'd be either live coding or I'll have each step laid out in slides.

This is both practical (people use bash) and has principles that can be applied to other crappy languages like Ruby and Python.

This could be an infrastructure talk, but really, for all the sentiment about not having hard-wired tracks, we sure are hung up on them.

Tutorial: Erlang - Inspiring Software

Prerequisite Knowledge

This tutorial covers high level concepts about Erlang but is technical as well. Having some proficiency in at least one programming language will be helpful, as well as some experience in building software systems.

Materials or downloads needed in advance

This tutorial does not require a full Erlang development environment, but if you'd like to experiment with the language it will be helpful to have a working copy of Erlang installed on your laptop.


Erlang is a programming language designed for the internet age, although it predates the web. It is a language designed for multi-core computers, although it predates them too. It is the Ramones of the programming world, inspiring the sound and the beat which other mainstream languages are using. Erlang, more clearly than any other language, demonstrates the benefits of distributed, concurrency-oriented programming. In this tutorial, Francesco & Garrett will present the features that make Erlang a trendsetter and give you a context for using it as strategic tool in your software arsenal.

This tutorial will cover these topics:

Functional Programming in Erlang

  • Functions
  • Pattern matching
  • Recursion
  • Higher order functions

Concurrent Programming

  • Processes
  • Message passing
  • Links and monitors
  • Error handling



  • Basic principles
  • Riak Core
  • Scalable Distributed (SD) Erlang
  • Messaging Architecture


  • Behaviors
  • Releases and upgrades

About Garrett

Garrett was a software engineer at CloudBees and is responsible for building scalable, er, that is, awesome software! At CloudBees Garrett led the development of the RUN platform-as-a-service that provided reliable, performant application hosting to tens of thousands of customers, which in turn served tens of millions of end-users!

Garrett's weapon of choice for the development of awesome software is Erlang - a highly concurrent functional programming language that use used by companies like Facebook, WhatsApp and Machine Zone to build the world's largest messaging systems. Garrett is an international speaker and instructor. He organizes the Chicago Erlang User Group which sponsors Chicago Erlang - an annual Erlang conference in the heart of the US. He is the author of several Erlang projects including e2, Psycho, and LambdaPad. He is the creator of the satirical videos MongoDB Is Web Scale, Node.js Is Bad Ass Rock Star Tech, and Erlang The Movie II, The Sequel.

Garrett maintains his blog at

Github: gar1t

Twitter: @gar1t

Back to conference page