<

Brujo Benavides

Blogger, Event Organizer & Maintainability Fanboy

Brujo is a long-time Erlang developer, blogger, trainer and event organizer.

Currently working for NextRoll, from sunny Barcelona, Spain.

He's an active member of the Education WorkGroup at the EEF. You can find him on exercism.io.

He creates and maintains a long list of open-source repositories, mostly rebar3 plugins.

Proud father, ping-pong aficionado and a long-distance walker.

Find more about him at http://about.me/elbrujohalcon.

Upcoming Activities

Manuel Rubio / Laura M. Castro / Brujo Benavides / Anayeli Malvaez / Raúl Chouza / Carlo Gilmar
Code BEAM America 2021
04 Nov 2021
10.00 - 10.40

Panel discussion on Beamer's modern life ó La vida moderna de un Beamer

This session will host an all spanish-speaking panel to talk about the BEAM; how the platform is currently used and what the future holds for anyone invested in it. Note that this panel will be delivered 98% in spanish.

Esta sesión tendrá como invitados a destacados miembros de la comunidad hispanohablante para discutir sobre BEAM; cómo es que aprovechamos la plataforma al día de hoy y qué es lo que el futuro aguarda para todos los interesados en ella. Manejaremos español durante gran parte de la sesión para la comunidad.

Past Activities

Brujo Benavides
Code BEAM V Europe
Tutorial/ 18 May 2021
10.00 - 14.00

Working Effectively with Erlang Legacy Code

So you just joined a massive project with tons of poorly-maintained Erlang code. DON'T PANIC! This tutorial will teach you all the tools and techniques you need to start working on it confidently and productively.

You will learn how to use tools like the compiler, common_test, xref, dialyzer, elvis, hank, the formatter and others in large codebases which are generally hard to work on. These tools and some of the techniques will increase your confidence and help you work more efficiently.
 

EXPERTISE

  • Intermediate

 

COURSE DURATION

  • 4 hours

 

TARGET AUDIENCE

  • Erlang developers that work (or plan to work) in legacy systems.

 

PREREQUISITES

  • Erlang/OTP 22 (or newer), github, and a text editor

COVERS THE FOLLOWING TOPICS

  • Improving systems in an iterative way
  • Testing Frameworks: Common Test, Eunit
  • Cross-reference Analyzers: Xref
  • Discrepancy Analyzers: Dialyzer / Gradualizer
  • Linters: Elvis / rebar3_lint
  • Dead Code Removers: Hank / rebar3_hank
  • Security Analyzers: PEST

 

WHY YOU SHOULD ATTEND THIS COURSE

  • Increases your confidence in dealing with large and complex systems.
  • Gives you tools to help you build better applications.
  • Gets you thinking in maintainability.
  • Helps you follow Joe’s recommendation of writing Beautiful Code.
Brujo Benavides
Code BEAM V Europe
19 May 2021
13.20 - 14.00

Kill your Dead Code with Fire!

Working with legacy code can be very frightening sometimes. That's why most of us tend to touch as little as possible every time we need to make a change, particularly when we're removing stuff. That leads to lots and lots of "dead code" (pieces of code that are no longer needed but never removed… just in case). That piling of dead code makes debugging and maintaining systems harder and harder, and the cycle starts again…

That's why, at NextRoll, we created Hank, the Dead Code Killer.

Our latest open-source tool that you need to start using today!

OBJECTIVES:

To help developers lose the fear to delete code from large systems using Hank to help them.

AUDIENCE:

Erlang developers.

Brujo Benavides
Code BEAM SF 2019
28 Feb 2019
11.35 - 12.20

OTP behaviours and how to behave around them

One of the first things every newcomer faces when they meet OTP are behaviours. The general explanation for them is usually along the lines of "they're like interfaces for OOP". While that's somewhat accurate, it's also misleading and introduces a lot of confusion on how and when to use the existing behaviours and when it's reasonable to define your own ones. In this talk, Brujo will explain what behaviours are, how they should be used and how to create and expose new ones if you ever need to.

OBJECTIVES

To help newcomers get familiar with OTP behaviours and to help experienced devs rediscover them.

TARGET AUDIENCE

Developers willing to understand what they really do when they implement a generic server or a supervisor. Also folks considering the creation of their own behaviours with the desire to do it right. If you don't know what a behaviour is at all, you're welcome here too.

Brujo Benavides
Code BEAM V
29 May 2020
10.50 - 11.20

rebar3 format: A new code formatter for Erlang

In recent years, many language ecosystems have developed automatic code formatters to reduce the mental overhead of code readers and therefore to share code more easily. The Erlang community was lacking a tool like this, so we created a rebar3 plugin just to automatically format code.

OBJECTIVES

To show the new currently available and open-source rebar3 plugin to automatically format Erlang code that we created.

Brujo Benavides
Code BEAM SF 2018
15 Mar 2018
12.25 - 12.50

Opaque Structures and Other Yerbas

Opaque Data Structures provide a very nice technique to structure systems and they are particularly useful within the functional programming paradigm. With the addition of maps and the opaque attribute for modules, Erlang is now perfectly suited to get the best of these structures, if you use it properly.

In this talk, Brujo will show what opaque data structures are, how to use them and why they are so useful, even more so if you're developing an open-source library. This talk will be conceptual, but it won't be 100% theoretical.

Brujo will also present examples and tools that assist us in making better use of these techiques.

OBJECTIVES

The main goal of the talk is to showcase a way to structure Erlang systems based on strong type definitions and explain why and how that structure is beneficial to Erlang developers.

AUDIENCE

Everyone, but it might be of particular interest for those building open-source libraries and/or big applications with lots of modules.