Learn Elixir Mentor

Get Started With Learn Elixir

Subscribe below and we'll email you a free preview, testimonials, pricing options, and an invitation to join the next live coaching session!

Learn Elixir in 12 weeks

Close the feedback loop and save yourself years of trial and error troubleshooting.

Beginner

  • Level One - Intro to Elixir and How to succeed in this course
    • Resources and Transcripts
    • Course Overview
    • What you need to do well in this course
    • Why Elixir is poised for the future
    • What is functional programming and how does it apply to Elixir
    • Comprehension Quiz
  • Level Two - The Syntax and Fundamentals
    • Resources, Transcripts, and Weekly Call
    • Overview and Installation
    • Syntax Basics
    • Basic Syntax Quiz
    • Pattern Matching
    • Advanced Syntax
    • Pattern Matchings & Advanced Syntax Quiz
    • Keeping Flow Clean
    • Functional Descriptive Flow
    • Code Fundamentals Assignment

Intermediate

  • Level Three - REST and GraphQL with Phoenix
    • Resources and Transcripts
    • Overview and Phoenix Installation
    • Introduction to Phoenix and Phoenix Architecture
    • Phoenix Architecture Quiz
    • Phoenix Cheat Sheets
    • Creating a REST API
    • REST API Quiz
    • GraphQL vs REST
    • GraphQL vs REST Quiz
    • Creating a GraphQL API
    • GraphQL Quiz
    • Absinthe and GraphQL Resources
    • Creating web pages with Phoenix
    • Phoenix Templates Resources
    • Phoenix Channels and GraphQL subscriptions
    • GraphQL API Assignment
  • Level Four - Ecto DB and Architecture
    • Resources and Transcripts
    • Overview
    • Creating Schemas and Migrations
    • Schemas and Migrations Quiz
    • Data Integrity through Changesets
    • Changesets Quiz
    • Writing and Composing Queries
    • Writing and Composing Queries Quiz
    • Managing Schema Relationships
    • Relationships Quiz
    • Integrating Ecto with Phoenix
    • Integrating Ecto with Phoenix Quiz
    • Phoenix Project Ecto Integration
  • Level Five - OTP and Testing
    • Overview Audio and Transcripts
    • Overview
    • Audio & Transcripts
    • What is OTP
    • OTP Supervisors and Workers
    • OTP Process Communication
    • OTP Agent, GenServers & Tasks
    • OTP Application
    • OTP "Let it Crash"
    • OTP Process Limitations
    • OTP Process Quiz
    • Audio & Transcripts
    • ExUnit
    • Writing Testable Code
    • Testing OTP
    • Testing Ecto
    • Testing REST
    • Testing GraphQL
    • Testing GraphQL Subscriptions
    • Testing Basics Quiz
    • Audio & Transcripts
    • Writing Maintainable Tests
    • Cleaning Up Tests with Support
    • Stubbing & Mocking
    • Testing Side Effects
    • Crushing Bugs with IEx, Logger, and IO.Inspect
    • Testing Maintainability Quiz
    • OTP Process and Testing Assignment
  • Midterm
    • Audio and Transcripts
    • Midterm Recap
    • Midterm Project Prep
    • Midterm Assignment
  • Level Six - Absinthe Deep Dive & Pre-emptive Error Handling
    • Overview
    • Thinking About Errors
    • Erroring Gracefully
    • Writing to Handle Unknown Errors
    • Thinking About Errors Quiz
    • Adding Logging to Aid Debugging
    • Creating Error Systems for Debugging
    • Using IEx to Debug Code
    • Debugging with Observer
    • Debugging Quiz
    • Absinthe's Middleware
    • Absinthe's Resolution Object
    • Absinthe Fields and Object
    • Writing Documentation with Absinthe
    • Absinthe Quiz
    • Error System & Absinthe Assignment

Advanced

  • Level Seven - Planning for scalability & How to go distributed
    • Audio & Transcripts
    • Overview
    • 1.0 - Elixir Limitations
    • 1.1 - Phoenix Limitations
    • 1.2 - Side Effects of Scaling
    • 1.3 - Statistics to Measure Scale
    • Scaling Quiz
    • 2.0 - Bottlenecks from Elixir
    • 2.1 - Bottlenecks from Processes
    • 2.3 - How to Architect with Bottlenecks in Mind
    • Bottlenecks Quiz
    • 3.0 - Connecting Elixir Nodes
    • 3.1 - Sending Messages Across Nodes
    • 3.2 - Clustering Nodes with LibCluster
    • 3.3 - Distributing With Tasks
    • 3.4 - Distributing Phoenix & Absinthe
    • Distributing Quiz
    • 4.0 - Using GenStage to Process Lots of Data
    • 4.1 - GenStage Dispatchers
    • 4.2 - GenStage Consumer Producers
    • 4.3 - GenStage Consumer Supervisors
    • 4.4 - Using GenStage across Nodes
    • GenStage Quiz
    • Distributed Application Assignment
  • Level Eight - Distributed Tooling
    • Audio & Transcripts
    • Overview
    • 1.0 - What are metrics
    • 1.1 - Erlang Telemetry
    • 1.2 - Gathering Metrics with Prometheus
    • 1.3 - Prometheus Counters, Gauges & Histograms
    • 1.4 - Setting up Prometheus and Grafana
    • 1.5 - Displaying Prometheus and Grafana
    • 1.6 - Using Watchdog Processes With Prometheus
    • Monitoring Quiz
    • 2.0 - Monitoring with AppSignal
    • 2.1 - Integrating AppSignal into Your Application
    • 2.2 - Adding Custom Errors to AppSignal
    • AppSignal Quiz
    • 3.0 - Creating Distributed Supervisors with Horde
    • 3.1 - Using Horde to Run Singleton Processes in a Cluster
    • Distributed Processes Quiz
    • 4.0 - Replicating State Across Clustered Nodes
    • 4.1 - Using DeltaCDRT to Create a Caching System
    • Distributed State Quiz
    • 5.0 - Distributed Caching Types and Trade-Offs
    • 5.1 - Distributed Hash Rings
    • 5.2 - Using Redis as a Cache
    • 5.3 - Using Redex as a Cache
    • Caching Quiz
    • Distributed Application Assignment
  • Level Nine - How to use Elixir to Architect an Application
    • Audio & Transcripts
    • Overview
    • 1.0 - Using Elixir in a Polyglot Situation
    • 1.1 - Architecting with NIFs
    • 1.2 - Architecting a Green Field Application
    • Polyglot Quiz
    • 2.0 - Evaluating Development Tradeoffs
    • 2.1 - The Important of Delaying Architecture Decisions
    • 2.2 - Poncho Project vs Umbrella
    • Tradeoffs and Project Styles Quiz
    • 3.0 - Architecting Data Flow
    • 3.1 - Architecting Clean Applications
    • Application Flow Quiz
    • 4.0 - Accessing Workload
    • 4.1 - Shortening Development Time with Libraries
    • 4.2 - Choosing the Right Libraries
    • Tradeoffs Quiz
    • 5.0 - Setting up Code Coverage with Coveralls
    • 5.1 - Setting up Code Coverage with Mix
    • Code Coverage Quiz
    • Application Architecture Assignment
  • Final Project - Last Boss
    • Audio & Transcripts
    • Recap
    • Project Instructions
    • Project Resources
  • Level Ten - How to Create and Manage Releases
    • Audio & Transcripts
    • Overview
    • 1.0 - Knowing the VM's Limits
    • 1.1 - Where the VM Limits Bend
    • 1.2 - When to Tune the VM
    • VM Tuning Quiz
    • 2.0 - Drafting Releases with mix release
    • 2.1 - Drafting Releases with Distillery
    • 2.2 - Writing Custom Release Tools with Distillery
    • Releasing Quiz
    • 3.0 - Deploying Bare Metal Releases Over SSH
    • 3.1 - Deploying Releases with Docker Container
    • 3.2 - Using Hot-Code Upgrades to Deploy
    • Release Deployment Quiz
    • 4.0 - How to Setup CI
    • 4.1 - How to Manage Releases
    • 4.2 - How to Setup a CD Pipeline
    • CI/CD Quiz
    • Distributed Application Assignment
  • Final Remarks
    • Congratulations
    • Where to go From Here
    • Final Notes