<

Brujo Benavides

πŸ§™β€β™‚οΈ Oxbow Code Killer πŸ”₯

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

Currently working for NextRoll, from sunny Barcelona, Spain.

As an active member of the Education WorkGroup at the EEF, Brujo provides mentorship through diverse platforms.

Brujo consistently won every BEAM Quiz on CodeBEAM conferences, until they removed the contest 😎
Find more about him at http://about.me/elbrujohalcon.

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.
Paulo F. Oliveira / Brujo Benavides
Code BEAM Europe 2022
Tutorial/ 17 May 2022
09.30 - 17.00

Building a maintainable open-source library with Erlang/OTP - A Speedrun

LOCATION

Virtual 

TRAINING DESCRIPTION

You will learn how to go from an empty folder to a maintainable open-source library hosted on GitHub, ready to be published on Hex.pm and built with Erlang/OTP, using rebar3 and a host of plugins that will help you get there.We will guide you through this interactive process that will involve starting from a template, writing in-source documentation, creating and executing tests, performing static analysis, setting up continuous integration using Github Actions, and finally publishing your library on Hex.pm.

DURATION

7 Hours

TRAINING OBJECTIVES

To learn how to build a fully releasable open-source library and get it ready to be published in Hex.pm,
To prepare it to be easily maintainable, through the use of tests, static checks, and other tools.

TARGET AUDIENCE

People who would like to contribute to the Erlang Ecosystem.

Brujo Benavides
Code BEAM Europe 2022
19 May 2022
10.45 - 11.30

Working Effectively With Erlang Legacy Code

So you just joined a massive project with tons of poorly-maintained Erlang code. DON'T PANIC! This talk will give you many tools and techniques that you will need to start working on it confidently and productively.
You will learn multiple tips and tricks to incrementally start using the compiler, Common Test, Xref, Dialyzer, Elvis, Hank, the Formatter, and others in large codebases. A task that's generally hard to do but usually produces enormous benefits in terms of maintenance. These tools and techniques will increase your confidence, and they'll help you and your team work more efficiently.

OBJECTIVES
The goal of the task is to reduce the pain developers feel when faced with large poorly-maintained projects written in Erlang, by showing how the tools that they would use from day 0 on new projects can be introduced gradually even when they were never used before.

AUDIENCE
Almost any Erlang developer, maybe except for those who had worked with me in the past:)

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.

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 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.