Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!)