Both Erlang and Elixir are praised for their "debuggability". It's true - there's a lot of tools and techniques that can be used, even on live, production systems. Not only that - they are easily accessible and freely usable. Together we're going to explore them in depth.
We're going to learn what exactly happens when you call a GenServer, how to "spy" on processes and introspect the VM internals. We're going to work with an example application - a basic key-value store built on top of plug, prepare a release for it and deploy it to production. Unfortunately, after the deployment we're going to discover some errors, we didn't anticipate. Fortunately, with the knowledge we gained earlier, we'll be able to diagnose and fix them - live in production!
Student during mornings, developer at afternoons and open source contributor by evenings. Michal is programming languages enthusiast, focusing mostly on the functional side. He is a member of the Ecto core team and maintainer of the MongoDB adapter. He's Google Summer of Code 2015 alumni, where he worked on Ecto and its MongoDB integration supervised by José Valim himself. When not programming he enjoys reading books, travelling, and sailing - no matter if sunny, rainy or stormy - it's even better if all of those are combined!