Learn about the origins of Elixir and Erlang, as well as some of Elixir’s more attractive features.

Data Types Thumbnail

Learn about Elixir’s data types, their implementation, and performance characteristics.

Operators Thumbnail

Learn about Elixir’s many operators. Most importantly, the match and pipeline operators.

Functions, Modules, and Structs Thumbnail

Learn how to organize your Elixir code into modules, named functions, and custom types.

Control Flow Thumbnail

Learn how to control the flow of your Elixir program with macros, pattern matching, and guards.

Recursion Thumbnail

Learn how Elixir replaces loops with recursion, and how to use tail call optimization.

Enum and Stream Thumbnail

Learn more about the Capture Operator, the Enum module, and the lazy version, Stream.

Comprehensions Thumbnail

Learn about Elixir’s final loop-like feature: comprehensions, powered by the for macro.

Sigils Thumbnail

Learn about Sigils, Elixir’s shorthand expressions. Including how to write your own.

Mix Thumbnail

Learn about Mix, the project builder and manager for Elixir, including custom mix tasks.

Hex Thumbnail

Learn about Elixir’s package repository, Hex, and how to install and upload packages.

ExUnit Thumbnail

Learn how to use ExUnit, Elixir’s built-in testing framework, and one of its best features: doctests.

Processes Thumbnail

Learn about processes, Elixir’s core concurrency feature. Processes are an essential Elixir concept, so don’t miss it!

GenServer Thumbnail

This episode begins our look at OTP, starting out with GenServer, its component for managing long-running processes.

Supervisor Thumbnail

Learn about error handling in OTP, and supervision trees, the OTP framework’s powerful way of keeping a system stable.

Applications Thumbnail

Learn what OTP applications are, and how to build one with an in-depth, detailed demo!

Task and Agent Thumbnail

You don’t need a GenServer for everything. Try Task for asynchronous jobs, and Agent for simple storage.

Nodes Thumbnail

Learn about how Elixir makes it trivially easy to distribute your app between machines.

Protocols Thumbnail

Learn about Elixir’s data polymorphism feature: Protocols. Also, learn a bit about how Elixir handles extension.

Behaviours Thumbnail

Learn about Elixir’s answer to interfaces from object-oriented languages: Behaviours.

Exceptions Thumbnail

Learn what little you need to know about Elixir exceptions. You won’t be using them often!

Macros Thumbnail

Learn how why Elixir has macros, how they work, and how to write your own.

Binary Thumbnail

Learn more about how to work with binary data using Elixir pattern matching.

GenEvent Thumbnail

Learn about OTP’s publish/subscribe paradigm, and GenEvent, Elixir’s wrapper for it.

Dialyzer Thumbnail

Learn how to get some of the benefits of static typing with Erlang’s static analysis tool, dialyzer.

Learn how to deploy an Elixir app to self-managed hardware, using ExRM.

Observer Thumbnail

Learn about :observer, a GUI tool for observing an Erlang node.

With Macro Thumbnail

The with macro was introduced in Elixir 1.2, and can be a little confusing.

New episodes are uploaded weekly. See Upcoming Episodes