Back to home

Course

Functional Systems Engineering

Functional Systems Engineering

This curriculum is being built in public.

Functional Systems Engineering is a systems-first approach to learning software engineering using functional programming and Elixir.

Instead of focusing only on syntax or frameworks, this curriculum emphasizes:

  • thinking in terms of data transformations
  • building reliable systems using immutability
  • understanding concurrency as a core concept, not an afterthought

The goal is to move from:

  • writing small functions
  • to building real-world systems
  • to reasoning about distributed, fault-tolerant architectures

Philosophy

Most modern software systems are:

  • concurrent
  • distributed
  • failure-prone

Traditional learning paths often ignore these realities until much later.

This curriculum starts with the fundamentals that make these systems manageable:

  • immutability
  • pattern matching
  • explicit data flow
  • process isolation

What You Will Learn

  • How to think in functional transformations instead of state mutations
  • How to model problems using data and pattern matching
  • How recursion replaces loops and iteration
  • How these ideas scale into real-world systems (BEAM, concurrency, fault tolerance)

Available Courses