Andorra United Arab Emirates Afghanistan Antigua and Barbuda Albania Armenia Angola Argentina Austria Australia Azerbaijan Bosnia and Herzegovina Barbados Bangladesh Belgium Burkina Faso Bulgaria Bahrain Burundi Benin Brunei Darussalam Bolivia (Plurinational State of) Brazil Bahamas Bhutan Botswana Belarus Belize Canada Congo, Democratic Republic of the Central African Republic Congo Switzerland C??te d'Ivoire Chile Cameroon China Colombia Costa Rica Cuba Cabo Verde Cyprus Czechia Germany Djibouti Denmark Dominica Dominican Republic Algeria Ecuador Estonia Egypt Eritrea Spain Ethiopia Finland Fiji Micronesia (Federated States of) France Gabon United Kingdom Grenada Georgia Ghana Gambia Guinea Equatorial Guinea Greece Guatemala Guinea-Bissau Guyana Honduras Croatia Haiti Hungary Indonesia Ireland Israel India Iraq Iran (Islamic Republic of) Iceland Italy Jamaica Jordan Japan Kenya Kyrgyzstan Cambodia Kiribati Comoros Saint Kitts and Nevis Korea (Democratic People's Republic of) Korea, Republic of Kuwait Kazakhstan Lao People's Democratic Republic Lebanon Saint Lucia Liechtenstein Sri Lanka Liberia Lesotho Lithuania Luxembourg Latvia Libya Morocco Monaco Moldova, Republic of Montenegro Madagascar Marshall Islands North Macedonia Mali Myanmar Mongolia Mauritania Malta Mauritius Maldives Malawi Mexico Malaysia Mozambique Namibia Niger Nigeria Nicaragua Netherlands Norway Nepal Nauru New Zealand Oman Panama Peru Papua New Guinea Philippines Pakistan Poland Portugal Palau Paraguay Qatar Romania Serbia Russian Federation Rwanda Saudi Arabia Solomon Islands Seychelles Sudan Sweden Singapore Slovenia Slovakia Sierra Leone San Marino Senegal Somalia Suriname South Sudan Sao Tome and Principe El Salvador Syrian Arab Republic Eswatini Chad Togo Thailand Tajikistan Timor-Leste Turkmenistan Tunisia Tonga T�����rkiye Trinidad and Tobago Tuvalu Taiwan (Province of China) Tanzania, United Republic of Ukraine Uganda United States of America Uruguay Uzbekistan Holy See Saint Vincent and the Grenadines Venezuela (Bolivarian Republic of) Viet Nam Vanuatu Yemen South Africa Zambia Zimbabwe
  • training@skillsforafrica.org
    info@skillsforafrica.org

Functional Programming With Haskell And Elixir Training Course in Kenya

Introduction

The Functional Programming with Haskell and Elixir Training Course equips software developers and engineers with the essential skills and knowledge to design robust, maintainable, and scalable software using two of the most powerful functional programming languages in the industry. Haskell and Elixir represent cutting-edge paradigms in software architecture, focusing on immutability, declarative logic, and concurrent execution. This course empowers participants to build reliable systems using pure functions, strong type systems, and modern concurrency models.

With the increasing demand for scalable, fault-tolerant applications, understanding functional programming is more relevant than ever. Haskell is ideal for domains requiring mathematical precision and high assurance, while Elixir shines in real-time, distributed, and concurrent environments. This hands-on training bridges theoretical knowledge with real-world implementation, making it a perfect fit for developers transitioning from imperative paradigms to functional ones.

Target Audience

  • Software developers transitioning from OOP to functional programming
  • Backend engineers seeking high-performance, fault-tolerant systems
  • Engineers building distributed and concurrent applications
  • DevOps professionals integrating functional paradigms into pipelines
  • Computer science students exploring advanced programming models
  • Technical architects designing scalable, maintainable systems
  • Programmers looking to master Haskell and Elixir fundamentals

Course Objectives

  • Understand the core principles of functional programming
  • Write pure, declarative code using Haskell and Elixir
  • Leverage recursion and higher-order functions for elegant solutions
  • Use immutability and stateless design for scalable systems
  • Apply pattern matching and algebraic data types in practical scenarios
  • Build concurrent systems using Elixir’s actor-based model
  • Implement type-safe applications with Haskell’s powerful type system
  • Utilize Elixir’s OTP framework for fault-tolerant architecture
  • Integrate functional programming with real-world APIs and services
  • Apply best practices for testing, debugging, and deployment in FP projects

Duration

10 Days

Course content

Module 1: Introduction to Functional Programming Concepts

  • Pure functions and immutability
  • First-class and higher-order functions
  • Referential transparency and recursion
  • Functional vs. imperative paradigms
  • Benefits of functional design in modern development

Module 2: Getting Started with Haskell

  • Installing GHC and Stack
  • Writing and running your first Haskell code
  • Using the interactive REPL (GHCi)
  • Syntax overview and layout rules
  • Haskell project structure and build tools

Module 3: Core Haskell Programming Techniques

  • Type inference and static typing
  • Pattern matching and guards
  • Data types and type constructors
  • Lists, tuples, and custom data structures
  • Defining and applying higher-order functions

Module 4: Monads, Functors, and Type Classes in Haskell

  • Understanding type classes and interfaces
  • IO monad and managing side effects
  • Working with Maybe, Either, and List monads
  • Composing functional pipelines with bind
  • Practical monadic design patterns

Module 5: Introduction to Elixir and the BEAM VM

  • Installing Elixir and using Mix
  • Understanding BEAM’s concurrency model
  • Writing basic Elixir modules and functions
  • Pattern matching and immutability in Elixir
  • Functional flow with pipes and recursion

Module 6: Elixir Data Structures and Pattern Matching

  • Lists, tuples, maps, and keyword lists
  • Destructuring and guards in function clauses
  • Anonymous functions and closures
  • Working with Enum and Stream modules
  • Data transformation with pipelines

Module 7: Concurrency in Elixir with Processes

  • Spawning lightweight processes
  • Sending and receiving messages
  • Process linking and supervision
  • GenServer abstraction and state management
  • Real-time concurrency use cases

Module 8: Building Scalable Systems with OTP

  • OTP design principles
  • Supervisors, applications, and behaviors
  • State machines with GenStateMachine
  • Logging, error handling, and monitoring
  • Fault-tolerant system design in Elixir

Module 9: Functional Web Development with Phoenix and Plug

  • Setting up a Phoenix web project
  • Handling HTTP requests functionally
  • Building APIs with Elixir
  • Real-time features with Phoenix Channels
  • Middleware development with Plug

Module 10: Testing and Debugging Functional Code

  • Unit and property-based testing in Haskell
  • Testing strategies using QuickCheck
  • ExUnit and mock testing in Elixir
  • Debugging with IEx and tracing tools
  • Writing maintainable and readable functional tests

Module 11: Advanced Functional Patterns and Architectures

  • Functional reactive programming principles
  • Domain-driven design with FP
  • Error handling using types and pattern matching
  • Event-driven architecture with Elixir
  • Functional design patterns in production code

Module 12: Capstone Project: Functional System Design

  • Building a real-world concurrent app
  • Combining Haskell and Elixir components
  • Applying type safety and concurrency
  • Continuous integration and deployment
  • Final code review and presentation

Training Approach

This course will be delivered by our skilled trainers who have vast knowledge and experience as expert professionals in the fields. The course is taught in English and through a mix of theory, practical activities, group discussion and case studies. Course manuals and additional training materials will be provided to the participants upon completion of the training.

Tailor-Made Course

This course can also be tailor-made to meet organization requirement. For further inquiries, please contact us on: Email: info@skillsforafrica.org, training@skillsforafrica.org Tel: +254 702 249 449

Training Venue

The training will be held at our Skills for Africa Training Institute Training Centre. We also offer training for a group at requested location all over the world. The course fee covers the course tuition, training materials, two break refreshments, and buffet lunch.

Visa application, travel expenses, airport transfers, dinners, accommodation, insurance, and other personal expenses are catered by the participant

Certification

Participants will be issued with Skills for Africa Training Institute certificate upon completion of this course.

Airport Pickup and Accommodation

Airport pickup and accommodation is arranged upon request. For booking contact our Training Coordinator through Email: info@skillsforafrica.org, training@skillsforafrica.org Tel: +254 702 249 449

Terms of Payment: Unless otherwise agreed between the two parties’ payment of the course fee should be done 10 working days before commencement of the training.

Course Schedule
Dates Fees Location Apply
07/07/2025 - 18/07/2025 $3000 Nairobi, Kenya
14/07/2025 - 25/07/2025 $5500 Johannesburg, South Africa
14/07/2025 - 25/07/2025 $3000 Nairobi, Kenya
04/08/2025 - 15/08/2025 $3000 Nairobi, Kenya
11/08/2025 - 22/08/2025 $3500 Mombasa, Kenya
18/08/2025 - 29/08/2025 $3000 Nairobi, Kenya
01/09/2025 - 12/09/2025 $3000 Nairobi, Kenya
08/09/2025 - 19/09/2025 $4500 Dar es Salaam, Tanzania
15/09/2025 - 26/09/2025 $3000 Nairobi, Kenya
06/10/2025 - 17/10/2025 $3000 Nairobi, Kenya
13/10/2025 - 24/10/2025 $4500 Kigali, Rwanda
20/10/2025 - 31/10/2025 $3000 Nairobi, Kenya
03/11/2025 - 14/11/2025 $3000 Nairobi, Kenya
10/11/2025 - 21/11/2025 $3500 Mombasa, Kenya
17/11/2025 - 28/11/2025 $3000 Nairobi, Kenya
01/12/2025 - 12/12/2025 $3000 Nairobi, Kenya
08/12/2025 - 19/12/2025 $3000 Nairobi, Kenya