Nelson Vides

Self-taught programmer and core developer of MongooseIM

Nelson is a child of a multicultural journey. Born in Venezuela to a family of engineers and economists, he grew up in Spain to study pure maths in university and moved to Poland to become a self-taught programmer. After a few years as a C developer in security/telecommunication domains, he’s now an Erlang enthusiast with an emphasis on performance and security, a professional in the field of instant messaging and a core developer of MongooseIM. In his free time he’s a sports addict, practising yoga and callisthenics, and also a history fanboy, devouring books every night.

Building blocks and how to use them: a MongooseIM case study

Audience: Intermediate

This is a talk about open source and the community, with MongooseIM as its backbone. MongooseIM is Erlang Solutions’ robust, scalable and customisable messaging server, and using it as a “case study”, I want to tell the story of the evolution of a big and old open source project. I’ll start presenting common Erlang design patterns for a server – the supervision trees, the many processes, the NIFs when they are needed, and most importantly, the ways to preserve a big project manageable and continuously evolving.

I also want to present the libraries that branched off from MongooseIM. In the evolution of a big project, often times you find pieces of code that are not an integral part of the business logic but actually can be generalised and reused for projects potentially very different from your own. I want to present what we found and how, what we extracted, and what we prepared for other people to reuse.


To present MongooseIM in three aspects: an Erlang codebase, an Open-Source project, and a messaging backend. To present the libraries that branched off the main project, together with how-tos and whys, that can be reused by other projects. Ideally, to get diverse developers interested in diverse pieces of code they can reuse in their projects and contribute to, and inspire developers to extract from their projects what is generic and find a way for other people to be able to reuse them.


Probably developers of all backgrounds and interests.