Plans & Pricing

Same Value, Different Discounts

Learn Elixir In As Little As 12 Weeks!

All you need to do is progress through our content as quickly or slowly as your schedule allows and hop on as many live coaching sessions as you can.

  • 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 - Preperation
    • Interviews, Coaching, & Placement
    • Reciprocate
  • 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 - Distributed tooling

    • Overview
    • 1.0 - What are Metrics
    • 1.1 - Erlang Telemetry
    • 1.2 - Gathering Metrics with Prometheus
    • 1.3 - Prometheus Counters, Guages & Histograms
    • 1.4 - Setting up Prometheus and Grafana
    • 1.5 - Displaying Prometheus with Grafana
    • 1.6 - Using Watchdog Processes With Prometheus
    • 2.0 - Monitoring with Sentry
    • 2.1 - Integrating Sentry into Your Application
    • 3.0 - Creating Distributed Supervisors with Horde
    • 3.1 - Using Horde to Run Singleton Processes in a Cluster
    • 4.0 - Replicating State Across Clustered Nodes
    • 4.1 - Using DeltaCDRT to Create a Caching System
    • 5.0 - Distributed Caching Types & Trade-offs
    • 5.1 - Distributed Hash Rings
    • 5.2 - Using Redis as a Cache
    • 5.3 - Using Redex as a Cache
  • 11

    Level Nine - How to use Elixir to architect an application

    • Overview
    • 1.0 - Using Elixir in a Polyglot Situation
    • 1.1 - Architecting with NIFs
    • 1.2 - Architecting a Green Field Application
    • 2.0 - Evaluating Development Tradeoffs
    • 2.1 - The Importance of Delaying Architecture Decisions
    • 2.2 - Poncho Project vs Umbrella
    • 3.0 - Architecting Data Flow
    • 3.1 - Architecting Clean Applications
    • 4.0 - Accessing Workload
    • 4.1 - Shortening Development Time with Libraries
    • 4.2 - Choosing the Right Libraries
    • 5.1 - Setting up Code Coverage with Coveralls
    • 5.1 - Setting up Code Coverage with Mix
  • 12

    Final Project - Last Boss

    • Recap
    • Project Instructions
  • 13

    Level Ten - 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