Learn Elixir Mentor

Looking to dive deeper?

Close the gaps in knowledge and save yourself years of trial and error troubleshooting. Find out how Learn Elixir can specifically help you reach your goals.

Course Content

Everything is self-paced though on average, developers can pass each level in roughly 4 - 10 hours depending on comprehension and experience.

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

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

If job opportunities are your focus we can begin helping you with recommendations and referrals once you’ve defeated the Mini-Boss and have a completed project on your GitHub to show hiring managers.

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

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

Once completed you will be awarded a Learn Elixir Certificate of Excellence and all content will remain available to you for review as a part of your Lifetime Membership.

Join our Growing Community of lifetime members!

Book a call now with Jeremy Graham to go over the details and see if we’re a good fit for each other.

Learn Elixir Anywhere