Podcast

Elixir Wizards: the Elixir community in Kenya

An hour on how the Kenyan Elixir community was built meetup by meetup, what it costs its members to show up anywhere in person and why the language's real problem is a shortage of juniors.

Show
Elixir Wizards, by SmartLogic
Episode
Season 7, episode 8
Published
6 January 2022
Length
50 minutes
  • Elixir Kenya
  • Community building
  • Meetups and webinars
  • ElixirConf Africa
  • Hiring juniors

Listen

Takeaways

Season seven's theme was the impact of Elixir and Sundi Myint and Owen Bickford spent most of the hour on the community rather than on me. What follows is what the Kenyan Elixir community looked like at the start of 2022, in its own terms.

The community runs on a weekly rhythm, not on events

Meetups every Monday at 11:30 GMT, plus a webinar on the last Friday of the month. The cadence is the thing that holds it together. A conference once a year would not.

It changed shape when the first model stopped working

It began as people building open source projects together, because that was how Kenyan Elixir developers could find each other at all. That stopped being sustainable, so Mondays became learning instead, working through the OTP track from the simplest pieces.

The rule is that no question is too basic

The Monday session is a mob session where you turn up and ask your dumb questions. There is always an answer to a dumb question. The hard ones get an honest 'I will look that up'.

Speakers are not screened by seniority or topic

The webinars reach out to anyone working with Elixir and let them decide what to share. No themes, no vetting. That is why one month is Nerves and the next might be LiveView or Ecto.

ElixirConf Africa brought a community into existence that did not exist before

The organisers of every Elixir meetup they could find across Africa were pulled in as part of it. Right after that conference, Elixir Ghana was born.

The conference stayed virtual because the travel arithmetic is brutal

California to New York and back is about 280 dollars. Nairobi to Dar es Salaam, an hour and a half, is 300 dollars one way and the bus is eighteen hours. Anywhere the community meets in person, most of it cannot afford to be there.

The community's real risk is a missing generation

It is heading for plenty of seniors and not enough juniors, because people move into management after a few years. Fixing that needs deliberate effort from everyone hiring: take the juniors, give them internships, work out the rest afterwards.

Being small is the community's biggest advantage

In other languages you read about the people who built the thing and never reach them. Here most of them are a conversation away, which is what makes it believable to a newcomer that they could get that good.

Elixir Kenya, in practice

Weekly meetups on Mondays at 11:30 GMT. We began by working on open source projects together, because at Podii we were the only Kenyans we knew of writing Elixir and it was a way to find the others and trade knowledge. That model stopped being sustainable, so the Monday session is now learning, working through the OTP track from the simplest pieces.

It is a mob session where you turn up and ask your dumb questions. There is always an answer to a dumb question. For the genuinely hard ones I say I will look that up.

Then monthly webinars, last Friday of the month, with an external guest. That started once we realised Kenyans in the group tended to think alike and we wanted other people's angles. We do not set themes and we do not screen by seniority. We reach out to anyone working with Elixir and they decide what to share, which is why one month is Nerves and the next might be LiveView or Ecto.

On Nerves specifically: most people I have seen use it experiment on a Raspberry Pi. Home security is the obvious application and it does not solve a real problem in our community, so people are looking for the ones that do. I met somebody at ElixirConf using Nerves for climate data collection in western Kenya.

Podii

It began because I like training. It was a training school first, then I realised it was better to keep the talent and find work for it. We started in Ruby in 2018 and switched to Elixir, which is a story of its own. Now it is custom web and mobile work, mostly for startups, no particular market, entirely Elixir with no Ruby left in the mix. Five people at the time of recording, most of them there over two years, in a company about three years old, fully remote and mostly in Kenya.

One project I am fond of is a cybersecurity learning game, borrowed heavily from Bruce Tate's Tetris exercise. You play and the game pauses to ask you a security question that you have to answer to keep going. It is at quizquadblocks.org, it is open to anyone and the client takes it to security conferences where people sign up and win awards while playing.

How I got here

I studied electronics and computer engineering, then electrical and electronics engineering. At university we started the J-Quad Linux user group, which was my first user group and the weekly meetups were full of tips and tricks for your own machine. Then the first tech space opened near the university and events started properly. That is 2008 to 2010 and the startups came in 2010 to 2012.

I went out and practised electrical engineering, got bored and came back. When I came back I ended up leading one of the communities and I have been organising meetups ever since.

Why I left electrical engineering

The work was: take the architect's designs, do the electrical design, produce a bill of quantities, appoint a contractor, supervise. The standards were British Standards written in the 1940s, revised around the 1960s. Nothing changed. Year after year the same thing done the same way.

Then there is the pace. A building takes three or four years to finish. There is very little gymnastics you can do on a building. Software lets you write Ruby today and decide in four months that you are going to Elixir.

Nerves is the obvious bridge back, since I programmed microcontrollers in C at university and would enjoy it. Interesting and paying the bills are two different things. Where is the client and who would I work with? The practical use of what I know has always been the web, because that is where the work is.

How I actually started programming

I needed something new to do and remembered enjoying Linux at university. So I decided I would find some school management software, package it up, sell it to schools and make money. That was my naive brain's business plan. I searched for an open source school management system, since I knew open source meant free and found one written in Ruby on Rails.

I called a friend who knew software. What is Ruby on Rails? Oh, it is an easy way of programming. So I can program? Yes, two or three days and you will understand everything.

Two or three months later I still did not understand what was going on and by then I had invested too much to stop. That is my introduction to programming. Ruby suited me because it was the easiest way to pay myself while learning. Where I come from you cannot work on systems and make money from it.

The tech scene and matatus

I have watched the Kenyan tech community go from almost no startups to tech hubs where people meet, then user groups forming inside them. GDG sponsored by Google, a JavaScript group, AndroidKE, Nairobi for Ruby which I was part of and plenty of others. Exponential growth through the late 2010s, everyone becoming a programmer or a product manager. Microsoft now has a large office in Nairobi hiring local talent.

Corporates prefer Java. A friend consults for a bank where you cannot work in anything else.

The other half of this conversation was matatus, which Sundi had asked about on Twitter. It is the Swahili word for public transport buses and the smaller vehicles. Tatu is three and ma can mean many, so matatu is threes, from when the fare was about three cents. Somebody stands at the door calling you onto their bus, because there might be four buses in the same spot and no order to it. When it fills, it leaves.

The competition goes to extremes. A TV behind every seat, a big one at the front, sometimes one facing back at the rear and more along the sides. Club lighting inside, the blinking blue and yellow and green you get on a dance floor. Music loud enough to be the point. Some are tinted so you cannot see in.

The graffiti is the real culture. Someone paints you onto a matatu. Barack Obama, LeBron, plenty of politicians. It is art and it is why people pick one bus over another.

You do not have to take them. There are ordinary commuter buses where you queue and go home quietly, which is what you want after work. But if you need to beat the morning traffic, take the fast loud one.

What I am reading

Teach Yourself Computer Science, the reading list for people who never took that path. It starts with Structure and Interpretation of Computer Programs and runs through to databases.

What pushed me into it was the same thing I said about the community being reachable. When you talk to the people who built the language, they drop computer science terms that are ordinary to them and new to me. I want to understand exactly what I am doing, which is also what drew me to Elixir. It is explicit. I know where things come from and where they are going.

SmartLogic publish a full transcript of this episode on the episode page.

Think your organisation has outgrown its systems?

Let's figure out what is actually broken.