Projects



Torrex Link to heading

  • A BitTorrent client written from scratch in Elixir.
  • Uses Phoenix as the web server, and LiveView to update the client side.
  • Supports
    • Downloading single and multi-file torrents
    • Downloading multiple torrents together
    • HTTP and UDP trackers
    • Writing straight to disk
  • Source
  • Blog

Snake.gif Link to heading

  • An interactive snake game, written in Elixir and Rust where the visual state is streamed as a GIF.
  • The GIF implementation is written in Elixir and the game logic is in Rust.
  • Rust and elixir interface through Rustler as the bridge to write NIFs (Native Implemented Functions).
  • Supports broadcasting the game to multiple clients, but only one client can play the game at a time.
  • Source
  • Live Demo

Time.gif Link to heading

  • A digital clock showing the local time based on IP address in 24-hour format.
  • The GIF implementation and LZW compression algorithm is written in Elixir.
  • Uses Cowboy directly as the web server.
  • Source
  • Live Demo

Rox Link to heading


Ray Tracer Link to heading

  • An implementation of Ray Tracing In One Weekend and Ray Tracing The Next Week in Rust.
  • Uses Rayon to work in parallel on all available cores.
  • Source

Nand to Tetris Link to heading

  • All tasks from nand2tetris, including the operating system routines.
  • Implements the assembler, virtual machine and compiler using Rust.
  • The operating system and a snake game is written in the Jack language.
  • Source

Ananke Link to heading

  • A file sharing service that allows downloads to begin before upload completes.
  • Supports resuming upload in the even of a network disruption.
  • Written in Elixir, Phoenix and ReasonML
  • Source

Email2Upload Link to heading

  • A service where you can send a file as an email and have it automatically uploaded to your Dropbox.
  • Uses Mailgun API and Dropbox OAuth2 using Uberauth, written from scratch.
  • Implemented using Elixir and Phoenix.
  • Source