Guilherme de Maio

Guilherme de Maio
Software Engineer at Telnyx

Coupling Data and Behaviour

Although the mystical land of functional programming preaches separation of data and behavior, keeping everything explicit, there are cases when coupling those (or dispatching based on type) are useful. This talks is about when, how and why to couple data and behavior, showcasing real code where Elixir Protocols are used to simplify and abstract common logic of different data types.


Showcase benefits and methods for coupling data and behavior (with Elixir in mind):

  • Standardize things such as:
  • Indexing data - access grant
  • Printing and serialization
  • Protocols in Elixir (inspired by Clojure)
  • Protocols vs Behaviors
  • Good practices when using Protocols


Guilherme is a software engineer with 10 years' experience focusing on web applications, from ops to backend. Currently, he is working at Telnyx, a Chicago based telecom company aiming at democratising universal communications. He has been in love with Elixir since he started working with the language in 2015, being an active member of Elixir Meetups in São Paulo, Brazil and spreading Elixir love all around :) He also loves science fiction books, movies and tv series.

Github: nirev

Twitter: @nirev

Back to conference page