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!
Software engineer, open-source developer, speaker and trainer. Michał is an Elixir Core Team member focusing on virtual machine, compiler and performance. As a developer and contractor in Elixir and Erlang he has faced many interesting issues. He's also a co-maintainer of Ecto and some other Elixir open source projects. When not programming, he enjoys reading, travelling, and sailing - no matter if it's sunny, rainy or stormy. It's even better if all of those are combined!