Elixir mastery exercises. Become your team's resident Elixir expert.
Put your Elixir skills to the test. Practice by building popular open-source tools from scratch.
A shell is the program that interprets what you type into the terminal. It reads your commands, runs programs, and prints their output. Popular examples are Bash and ZSH.
In this challenge, you'll build your own shell from scratch.
Your shell will run a REPL, parse commands, spawn processes, and more.
This challenge follows the book Crafting Interpreters by Robert Nystrom.
In this challenge you'll build an interpreter for Lox, a simple scripting language. Along the way, you'll learn about tokenization, ASTs, tree-walk interpreters and more.
Before starting this challenge, make sure you've read the "Welcome" part of the book that contains these chapters:
These chapters don't involve writing code, so they won't be covered in this challenge. This challenge will start from chapter 4, Scanning.
Discover concurrent programming in Elixir while also learning about TCP servers, network programming, and the Redis Protocol.
Learn about .torrent files and the famous BitTorrent protocol. Implement your own BitTorrent client in Elixir.
Learn about B-Trees, the foundation of every relational database. Explore Elixir's API for reading/writing files, and handling custom file formats.
HTTP is the protocol that powers the web. In this challenge, you'll build a HTTP server from scratch using TCP primitives. Your server will be capable of handling simple GET/POST requests, serving files and handling multiple concurrent connections.
Along the way, we'll learn about TCP connections, HTTP headers, HTTP verbs, handling multiple connections and more.