Lifetime Membership

30-Day No Questions Asked Full Refund Policy

Elixir Mastery

Fast Track To Senior Status

  • 1

    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
  • 2

    Level Two - The Syntax and Fundamentals

    • Resources, Transcripts, and Weekly Call
    • Overview and Installation
    • Syntax Basics
    • Basic Syntax Quiz
    • Pattern Matching
    • Advanced Syntax
    • Pattern Matching & Advanced Syntax Quiz
    • Keeping Flow Clean
    • Functional Descriptive Flow
    • Code Fundamentals Assignment
  • 3

    Level Three - REST and GraphQL with Phoenix

    • Resources and Transcripts
    • Overview and Phoenix Installation
    • Introduction to Phoenix and it's 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 GraphQL Resources
    • Creating Web Pages with Phoenix
    • Phoenix Templates Resources
    • Phoenix Channels and GraphQL Subscriptions
    • GraphQL API Assignment
  • 4

    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
    • Relationship Quiz
    • Integrating Ecto with Phoenix
    • Integrating Ecto with Phoenix Quiz
    • Phoenix Project Ecto Integration
  • 5

    Level Five - OTP & Testing

    • Overview Audio & Transcripts
    • Overview
    • 1 - Audio & Transcripts
    • 1 - What is OTP
    • 1.1 - OTP Supervisors and Workers
    • 1.2 - OTP Process Communication
    • 1.3 - OTP Agent, GenServers & Tasks
    • 1.4 - OTP Application
    • 1.5 - OTP "Let it Crash"
    • 1.6 - OTP Process Limitations
    • OTP Process Quiz
    • 2 - Audio & Transcripts
    • 2 - ExUnit
    • 2.1 - Writing Testable Code
    • 2.2 - Testing OTP
    • 2.3 - Testing Ecto
    • 2.4 - Testing REST
    • 2.5 - Testing GraphQL
    • 2.6 - Testing GraphQL Subscriptions
    • Testing Basics Quiz
    • 3 - Audio and Transcripts
    • 3 - Writing Maintainable Tests
    • 3.1 - Cleaning up Tests with Support
    • 3.2 - Stubbing & Mocking
    • 3.3 - Testing Side Effects
    • 3.4 - Crushing Bugs with IEx, Logger and IO.inspect
    • Testing Maintainability Quiz
    • OTP Process and Testing Assignment
  • 6

    Midterm Project - Mini Boss

    • Audio & Transcripts
    • Midterm Recap
    • Midterm Project Prep
    • Midterm Project
  • 7

    Opportunity Preparation & Placement

    • Open To Opportunities - Preparation
    • Interviews, Coaching, & Placement
    • The Elixir Community
  • 8

    Level Six - Absinthe Deep Dive & Pre-emptive error Handling

    • Overview
    • 1.0 - Thinking About Errors
    • 1.1 - Erroring Gracefully
    • 1.2 - Writing to Handle Unknown Errors
    • Thinking About Errors Quiz
    • 2.0 - Adding Logging to Aid Debugging
    • 2.1 - Creating Error Systems for Debugging
    • 2.2 - Using IEx to Debug Code
    • 2.3 - Debugging with Observer
    • Debugging Quiz
    • 3.0 - Absinthe's Middleware
    • 3.1 - Absinthe's Resolution Object
    • 3.3 - Absinthe Fields and Objects
    • 3.4 - Writing Documentation With Absinthe
    • Absinthe Quiz
    • Error System & Absinthe Assignment
  • 9

    Level Seven - Planning for scalability & How to go distributed

    • Overview
    • 1.0 - Elixir Limitations
    • 1.1 - Statistics to Measure Scale
    • 1.2 - Side Effects of Scaling
    • Limitations and Scaling Quiz
    • 2.0 - Bottlenecks from Elixir
    • 2.1 - Pooling for Increasing Bottleneck Width
    • 2.2 - ETS to Eliminate State Access Bottlenecks
    • 2.3 - How to Architect with Bottlenecks in Mind
    • Bottlenecks and Increasing Width Quiz
    • 3.0 - Connecting Elixir Nodes
    • 3.1 - Sending Messages Across Nodes
    • 3.2 - Clustering Nodes with LibCluster
    • 3.3 - Distributing Work with Tasks
    • 3.4 - Distributing Phoenix & Absinthe
    • Elixir Distribution Quiz
    • 4.0 - Using GenStage to Process Lots of Data
    • 4.1 - GenStage Dispatchers
    • 4.2 - GenStage Consumer Producers
    • GenStage Quiz
    • Scalability & Distribution Assignment
  • 10

    Level Eight - Metrics & Distributed tooling

    • Overview
    • 1.0 - What are Metrics
    • 1.1 - Beam Telemetry
    • Metrics & Telemetry Quiz
    • 2.0 - Setting up Prometheus and Grafana
    • 2.1 - Gathering Metrics with Prometheus
    • 2.2- Prometheus Counters, Guages & Histograms
    • 2.3 - Grafana Deep Dive
    • 2.4 - Building Good Grafana Dashboards
    • Grafana & Prometheus Quiz
    • Grafana & Prometheus Assignment
    • 3.0 - Using Global for Distributed Communication
    • 3.1 - CAP Theorem Basics
    • 3.2 - Creating Distributed Supervisors with Horde
    • Global, Horde & CAP Theorem Quiz
    • 4.0 - Replicating State Across Clustered Nodes
    • 4.1 - Using DeltaCRDT to Create a Caching System
    • 4.2 - Distributed Hash Rings
    • 4.3 - Using Redis as a Cache
    • 4.4 - Distributed Caching Types & Trade-offs
    • Distributed Tooling Assignment
  • 11

    Level 9 - How to use Elixir to Architect an Application & Code Scanning

    • Overview
    • 1.0 - Directory Organization & Module Structure
    • 1.1 - Umbrella & Poncho Projects
    • Project Organization Quiz
    • 2.0 - Connecting to Other Languages
    • 2.1 - Developing with NIFs
    • Other Language & NIF Quiz
    • 3.0 - Architecting a Green Field Application
    • 3.1 - Architecting Data Flow
    • 3.2 - Architecting Clean Applications
    • 3.3 - Thinking about the VM & Reductions
    • New, Clean & Flowing Applications Quiz
    • 4.0 - Oban Intro & Setup
    • 4.1 - Oban Deep Dive
    • 4.2 - Architecting Systems with Oban
    • Oban Quiz
    • Diagramming & Oban Assignment
    • 5.0 - Evaluating Development Tradeoffs
    • 5.1 - The Importance of Delaying Architecture Decisions
    • Dev Tradeoffs & Delaying Architecture Quiz
    • 6.0 - Assessing Workload
    • 6.1 - Shortening Development Time with Libraries
    • Assessing Workload & Libraries Quiz
    • 7.0 - Setting up Credo
    • 7.1 - Setting up Dialyzer
    • 7.2 - Setting up Code Coverage
    • Code Scanning Quiz
    • Architecture & Tooling Assignment
  • 12

    Final Project - Last Boss

    • Recap
    • Project Instructions
  • 13

    Level Ten - Tuning the VM & How to Create and Manage Releases

    • Overview
    • 1.0 - Knowing the VM's Limits
    • 1.1 - Where the VM Limits Bend
    • 1.2 - When to Tune the VM
    • 2.0 - Drafting Releases with mix release
    • 2.1 - Drafting Releases with Distillery
    • 2.2 - Writing Custom Release Tools with Distillery
    • 3.0 - Deploying Bare Metal Releases Over SSH
    • 3.1 - Deploying Releases with Docker Containers
    • 3.2 - Using Hot-Code Upgrades to Deploy
    • 4.0 - How to setup CI
    • 4.1 - How to Manage Releases
    • 4.2 - How to Setup a CD Pipeline
  • 14

    Final Remarks

    • Congratulations
    • Where to go From Here
    • Final Notes