$4800 Total
Elixir Mastery
Fast track to senior status
30-day no questions asked full refund policy
Includes
Videos
37 Quizzes & 13 assignments
2 Major Projects
Code Reviews
Learn With AI
Lifetime Membership
Senior Level Certificates
Job Preparation & Placement
Private Slack Channel
Weekly Live Coaching Sessions
Intro to Elixir
- 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
The Syntax and Fundamentals
- 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
REST and GraphQL with Phoenix
- Overview and Phoenix Installation
- Introduction to Phoenix and its Architecture
- Phoenix Architecture Quiz
- Creating a REST API
- REST API Quiz
- GraphQL vs REST
- GraphQL vs REST Quiz
- Creating a GraphQL API
- GraphQL Quiz
- Creating Web Pages with Phoenix
- Phoenix Channels and GraphQL Subscriptions
- GraphQL API Assignment
Ecto DB and Architecture
- 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
OTP & Testing
- Overview
- 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 - 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 - 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
Midterm Project - Mini Boss
- Midterm Recap
- Midterm Project Prep
- Midterm Project
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
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
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, Gauges & 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
Advanced Elixir Application Architecture & Development
- 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
Final Project - Last Boss
- Recap
- Project Instructions
- Final Project
Tuning the VM & How to Create and Manage Releases
- Overview
- 1.0 - Remote Debugging Tools
- 1.1 - Finding Bottlenecks with Recon
- 1.2 - Remote Tracing with RexBug
- Remote Debugging & Tracing Quiz
- 2.0 - Analyzing VM Memory & CPU
- 2.1 - Debugging High VM CPU
- 2.2 - Debugging High VM Memory
- VM Analysis & Debugging Quiz
- 3.0 - Knowing the VM's Limits
- 3.1 - Where the VM Limits Bend
- 3.2 - When to Tune the VM
- VM & Tuning Quiz
- 4.0 - Drafting Releases with mix release
- 4.1 - Deploying Bare Metal Releases Over SSH
- 4.2 - Deploying Releases with Docker Containers
- 4.3 - Using Hot-Code Upgrades to Deploy
- Release Quiz
- 5.0 - How to setup CI
- 5.1 - How to Manage Releases
- 5.2 - How to Setup a CD Pipeline
- CI/CD & Release Management Quiz
- Deployment & CI Assignment