Erlang
Full course · 21 lessonsErlang is a functional, concurrent language designed for building massively scalable, fault-tolerant systems with soft real-time properties. It powers telecommunications, messaging platforms (WhatsApp), and distributed databases.
Getting Started with Erlang
Modules, exports, atoms, variables, and the Erlang shell.
Values and Types
Numbers, strings as lists, format directives, and booleans.
Control Flow
case, if, pattern-matched clauses, and guards.
Lists and the Lists Module
List fundamentals, comprehensions, and the lists library.
Tuples and Records
Tuples, the ok/error convention, and records as named tuples.
Pattern Matching
Matching, destructuring, map patterns, and transforms.
Recursion
Recursive loops, tail calls, accumulators, and list building.
Anonymous Functions and Funs
Anonymous functions, higher-order functions, and closures.
Message Passing
send/receive, PIDs, selective receive, and timeouts.
Fault Tolerance
Links, monitors, exits, and try/catch.
OTP Behaviours
gen_server, supervisors, and applications.
Concurrency Utilities
Process dictionary, ets, parallel map, and timing.
Maps and Binaries
Maps, map updates, bit syntax, and binaries as strings.
Supervision Trees
Tree structure, supervisor callbacks, restart intensity.
Binaries and I/O
Binary matching, request parsing, building, and files.
Testing
EUnit, assertions, Common Test, and the TDD workflow.
Distribution and Hot Code
Hot code loading, distributed nodes, Mnesia, observability.
Performance
List performance, accumulators, efficient strings, timeouts.
Guards in Depth
Guard reference, type guards, pattern vs guard, case everywhere.
Process Pipelines and Servers
Process pipelines, worker pools, caches, health checks.
Advanced OTP
Call vs cast, timeouts, gen_statem, and the philosophy.

