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)