Talk

Building and growing the community

How Elixir Kenya went from a five-person WhatsApp group to a conference, told through the rules of hospitality I grew up with.

Event
Code BEAM Europe 2023
Date
19 to 20 October 2023
Location
Estrel Berlin, Germany
Length
18 minutes
  • Community
  • Elixir Kenya
  • ElixirConf Africa
  • Mentoring
  • Open source
Sigu Magwa speaking at Code BEAM Europe 2023 in Berlin
Still from the recording of the talk, Code BEAM Europe, Berlin, October 2023. Source: Code Sync on YouTube.

Takeaways

I was meant to give this with Njoki Kiarie. Her visa never came through, so I gave it alone. That is not an aside, it is half the argument of the talk.

A language does not grow without a community carrying it

Some languages are old enough that you can learn them from nothing, find the jobs and find the books without ever meeting a member. Elixir is not there yet. It still needs a human face telling you this is a language you can actually use.

It started with five people in a WhatsApp group

October 2018, after a Ruby conference in Kenya and all five of us already knew each other. Everyone had a full-time job in something else. Nobody was there for the money, because there was no money in it.

The first project was chosen for who it would attract

We wrapped a Kenyan SMS provider's API in Elixir. Not because we needed it, but because that company loves developers and would tweet about it. It worked. It also started a conversation with them about moving off Scala.

Hospitality is the model, literally

Where I grew up you could walk into any house on a long journey, be given water and porridge, then sleep the night before continuing. Nobody assumed you were there to cause trouble. A community for people at wildly different skill levels works the same way.

Then stop pouring and build the tank

You cannot personally hand water to everyone who passes. At some point you put a tank by the road so people can drink on their way through. That is what the weekly meetups, the recorded webinars and the open projects are.

Praise privately, then publicly

If somebody writes something good, send them a message saying so. Then say it again where everyone can see it. It costs nothing. It is also most of what keeps people showing up.

Running it is mentally exhausting, so plan for that

I hired a community manager so that engagement is somebody's job rather than somebody's evening. That buys sanity, at a cost.

Watch the talk

What a community is and why bother

The Code BEAM Europe 2023 title card showing 19 to 20 October 2023, Berlin
The conference card from the same recording, carrying the dates and the city. Source: Code Sync on YouTube.

In programming we say community casually. I belong to this one, I belong to that one. Where I come from it lands differently, because we are born into communities. So when I use the word in this talk I keep reaching for how it works at home.

A community is a group of people with something in common. Interests, values, goals. Once you belong to one, anything said for or against it lands somewhere inside you and you want to defend it.

Then the product manager question. Why. Why do we need communities at all? Because communities decide whether a language succeeds or fails. I do not think a language grows without one.

How Elixir Kenya actually grew

2018: five people who already knew each other

The idea came out of a Ruby conference in Kenya, which is where most Elixir stories seem to start. A few of us had heard about this language and in October 2018 we made a WhatsApp group.

Early on, everything is easy. Everyone is excited, everyone is learning. Call a meetup and everyone turns up, because it is new. Nobody is job hunting, because nobody invests career time in something with no visible future. We had full-time jobs in Ruby and JavaScript and asked questions without worrying about looking foolish. Our resources were two books, Dave Thomas and Saša Jurić, worked through at the same time, plus the docs.

The wrapper that was really a marketing decision

Eventually we had read enough and met enough. The book projects came with step-by-step instructions. We wanted to think one through ourselves. So the question became what to build and the first thing we asked was what would pull more people in.

We wrapped the API of a company that sends SMS, in Elixir. That company loves developers and reliably tweets and retweets what developers build on it. That is exactly what happened and members started arriving.

It also had a second effect I did not plan. The company got interested in Elixir. They were on Scala and we started having what-if conversations with them.

Three years in, three different communities in one room

By then the group had split into three groups of people who need different things. The curious, who wonder whether Elixir could be something. The convinced, who are learning. And the ones already being paid to write it, who now know it can pay.

That is the hard stage. It is also when we got brave enough to start reaching outside our own circle for speakers.

Water, porridge and a place to sleep

When I was growing up, people walked between places. There was often no regular transport and walking was faster. It was normal to walk into a house, say hello, be given water, drink some porridge and sleep there before carrying on the next morning. Nobody assumed you were there to cause harm. Everyone was welcome.

So when the community had people spread across every skill level, the question I asked was that one. How do we give these people water. Where do they sleep on the way.

In practice it is unglamorous:

Tell people their work was good, twice

A direct message saying thank you, this is going to help. Then the same thing publicly, where the rest of the community can see it. The reverse is also true. Handle that one in private.

Coach people into giving talks

I actively work with members on speaking and on believing they are allowed to. The person who was supposed to present with me at Code BEAM would have been giving her first talk to an audience like that.

Write the guidelines and hire someone to run the calendar

Past a certain size you need a community manager. Guidelines for how we behave, somebody checking that events actually happen, somebody organising.

Open office hours

Three thirty-minute slots on my calendar every week, Mondays, Wednesdays and Fridays. Book one and we talk about Elixir. That is the whole system.

Someone asked how long you keep doing this. The answer is long enough. Established languages get to a point where you can learn them from inception, find the jobs, find the resources and never need to meet a single member. Elixir is not there. It still needs people to be the human face.

The current shape of it

Meetups every Monday. The one that had just finished before Berlin was on Phoenix LiveView. Monthly webinars with a guest, usually external now that we have the nerve to ask, occasionally internal. Open source projects kept alive so that a new member always has something to pick up and an experienced one has something to do.

Then annually, ElixirConf Africa, which we had been running virtually since 2018. For 2024 we were planning to hold it physically in Kenya for the first time and package it as ElixirConf Safari, so that the technical part comes with an experience attached.

Why any of this needs you to travel

I ended on the thing that made this a solo talk. Njoki was supposed to be next to me. She had heard nothing back from the German consulate. I got a visa; she did not.

I pulled up a flight tracker a few minutes before going on stage and showed the map. Look at where the flights are dense and where they are not. Some people can move and some cannot. That is not a matter of effort.

So the ask was straightforward. Some of our members genuinely wanted to be at that conference and could not be, because passports and visas are refused over and over. They cannot get out. You can get in. Come to them instead. Bring your story and your experience, which is all they actually need from you.

The question afterwards

Someone asked what keeps me going, given that community work gives back less than you put in.

It is a fair question and yes, you do reach the point of wondering whether any of it is relevant. Most members are around while they are learning or job hunting and then they disappear. Sustaining that is hard.

What I get from it is not financial. I like training. Moving somebody from not knowing a thing to knowing it is the part I enjoy and that is most of the answer.

Think your organisation has outgrown its systems?

Let's figure out what is actually broken.