Brooklyn Zelenka on Witchcraft - Elixir Internals

July 11th, 2019

30 mins 15 secs

Season 2

Your Hosts
Special Guest
Tags

About this Episode

Hey everybody and welcome back to Season 2 of the podcast! This season we will be talking about Elixir internals, libraries and the inner workings of the language. In our first episode we are very happy to be joined by Brooklyn Zelenka to start off our journey on the subject with an exploration of her very own Witchcraft.

In this episode we talk to Brooklyn about her history with Elixir, how she got started and what attracts her to it. Brooklyn explains the influence that open source philosophy has had on her career in developing and from there she gives a pretty comprehensive introduction to what Witchcraft is, expanding its key concepts. Although this is quite a high level discussion about Elixir and Witchcraft, we are confident that with Brooklyn's expert help even our most uninitiated listener can get some benefit from our conversation. We also talk about type systems, property-based checking and Dialyzer, so for all of this and more make sure to join us as we kick things off for Season 2!

Key Points From This Episode:

  • A quick introduction to Brooklyn, where she works and how she got started with Elixir.
  • The influence of open source and library contributions on Brooklyn's development.
  • Getting to grips with Witchcraft; defining monads and functors.
  • Why some of these scary terms do not need to frighten you.
  • A few little things that differentiate Witchcraft and some surprising elements.
  • The convenient guarantees that Witchcraft provides around your data structure.
  • Why there is no type system baked into Elixir; overheads, inputs and outputs.
  • Property-based checking and compile times in Witchcraft.
  • Merging of Elixir and Dialyzer; benefits and problems.
  • Getting in touch with Brooklyn and getting involved with Witchcraft and Elixir.
  • And much more!

Links Mentioned in Today’s Episode:

Smartlogic — https://www.smartlogic.com/
Brooklyn Zelenka — https://github.com/expede
Brooklyn Zelenka on Twitter — https://twitter.com/expede
Brooklyn Zelenka Email — hello@brooklynzelenka.com
Fission — https://fission.codes/
Elixir — https://elixir-lang.org/
Witchcraft — https://hex.pm/packages/witchcraft
Dialyzer — https://github.com/jeremyjh/dialyxir