Ruby mastery exercises. Become your team's resident Ruby expert.
Put your Ruby 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.
Discover concurrent programming in Ruby 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 Ruby.
Dive into the internals of Git. Discover how Git stores and moves around data, its transfer protocols, and more. A unique exercise in making network requests with Ruby.
Learn about B-Trees, the foundation of every relational database. Explore Ruby's API for reading/writing files, and handling custom file formats.
DNS is a protocol used to resolve domain names to IP addresses. In this challenge, you'll build a DNS server that's capable of responding to basic DNS queries.
Along the way you'll learn about the DNS protocol, DNS packet format, DNS record types, UDP servers and more.
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.