28 July 2023
How You Can Help Build the Elixir Development Community, Even if You Don't Use it at Work
How You Can Help Build the Elixir Development Community, Even if You Don’t Use it at Work
At Launch Scout, we really like the Elixir programming language.
When we start a new client project from scratch (instead of inheriting a legacy
codebase) we typically write it in Elixir when possible. We go to, speak at, and
sponsor several Elixir conferences per year and we give talks about Elixir at
“polyglot” conferences. We support the Ohio Elixir Meetup and organize the
Elixir in Healthcare meetup, and we speak at other Elixir meetups across the
country. Our developers do a lot of their own side projects with Elixir. We
created a few open source libraries for Elixir applications.
Additionally, the Elixir community is one of our favorite programming language
communities. There are a lot of really kind and thoughtful people doing some
super interesting, challenging, and groundbreaking work both alone and in
collaboration with others in the community.
We really like Elixir, and we’re not shy about saying so.
Every so often, folks will ask us questions like:
How do I help grow the Elixir community and ecosystem? I love the language,
but I don’t get to use it at work and I’m not looking to change jobs. I would
do an open source library or organize a meetup or something, but I don’t feel
like I have the time or interest or maybe skill to do those well. What can I
do to help with where I am and what I have?
This is a great question! It’s also a pretty common theme (especially for people
who want to get involved but have obligations during or outside of work that
make “Just do a side project” or “Just do open source!” very difficult), and it’s hard to know
where to start.
Get Informed
One of the quickest ways to start getting involved with the Elixir community is
to find the places where people talk about Elixir and start listening.
I personally look forward to getting Elixir Radar
and Elixir Weekly in my inbox every week. Both
newsletters feature links to articles and videos (usually published in the
previous 7-10 days) about Elixir and its various libraries and frameworks. Some
of those authors are active on social media or have newsletters of their own.
On Twitter, you can follow the
#MyElixirStatus
hashtag; many of the same authors and developers (as well as a bunch of folks
doing interesting work but maybe not publishing about it) are active there. This
does require being on Twitter with all the chaos and hijinks afoot there.
The Elixir Subreddit is not particularly
active, but you’ll occasionally see some interesting posts and really
interesting discussions (particularly when developers who are relatively new to
Elixir have questions).
On LinkedIn you can join the Elixir Programming
group, which has a bunch of
developers and researchers who share things they made and things they found
interesting. As a bonus, you see none of the wacky self-congratulatory stuff
(with emojis for emphasis!) you’d normally see on LinkedIn.
There’s also the Elixir discord server and the
GenServer.social Mastodon instance, both of which
feature a number of notable developers (plus a whole bunch of community
members).
The Elixir Forum is pretty robust and searchable,
and after a while you’ll see a lot of names and people you recognize. This is
also a great place to ask questions.
You may enjoy podcasts like BEAM Radio, Elixir
Wizards, or Elixir
Outlaws.
“But Andrew, how does this help the community?”
Two ways:
The first is that by understanding what’s happening, you can sometimes find
places to contribute. Part of growing the community is knowing where the
community is and where to point folks.
The second is that those newsletters and blogs and all that have analytics and
people who are looking at the number of subscribers and open rates and other
metrics. It’s absolutely the case that people in charge of those newsletters
will (and do) say “Wow, we’re getting a lot of action on these posts. We should
write more of them.”
Amplify, Elevate, Participate, and Disseminate
As you read (or watch or listen to) things about Elixir, you have some
interesting opportunities to share what you’re learning.
Whenever I see posts advertising an Elixir developer opening (or an Elixir
developer looking for a job), I try to re-share it
in case someone who follows me is either looking for a job or looking to hire.
Similarly, I try to share articles I find interesting (and tag the author in the
social media post) along with, when appropriate, some commentary about what I
found interesting. Or if I see a conversation on Twitter about a topic where I
know I saw an interesting article or video a while back, I’ll try to share that
link with the folks in question if it seems like it’d be appropriate and useful.
Sometimes this starts interesting discussions. Sometimes this helps someone
who’s stuck on a problem get un-stuck. Sometimes it means that people get to see
those articles or videos when they otherwise wouldn’t have. Sometimes nothing
happens beyond the author knowing that someone read and enjoyed their work.
Those are all pretty good outcomes.
The other way to share is more directly: I’ll happily post articles that I think
are interesting and relevant to Launch Scout’s internal Discord server. When
colleagues of mine ask for help, I can usually track down a resource or two that
I found useful.
Along with this sharing, there are several Elixir meetup groups scattered around
the world, many of which meet either remotely or with a “hybrid” in-person and
Zoom option. Showing up to meetups to learn, meet people, and perhaps even
present is a great way to help boost the Elixir community.
Launch Scout organizes the Elixir Healthcare
meetup and many of our developers enthusiastically
participate in the Ohio Elixir monthly meetup.
There are a whole lot more
meetups, conferences, and user groups around the world.
Write Some Elixir
This doesn’t have to be a big side project. It doesn’t have to be
production-ready code. It doesn’t have to be finished, nor does it even have to
be good.
I like the Advent of Code problems, though usually 12-14 days into a given year
I’ll hit the point of “I’d rather do something else with my time” and then I
just look forward to reading other people’s solutions. Some people like to solve
“LeetCode”-style algorithmic problems (or exercises from Project
Euler) as a fun puzzle.
You can, of course, do a side project. Or write a little tool. Or just noodle in
IEX for a while (as a treat).
Even if you’re doing a lot of reading about Elixir, the way to actually learn
the language well is to use it. With any skill or competency, getting better
requires that you actually do the thing in question – just reading or just
watching both have limits to how far they can take you.
You can, of course, be an outstanding community member without ever writing a
single line of Elixir code. But if you’re even somewhat interested in the Elixir
language as a software developer (or a developer-adjacent role like Engineering
Manager), it’s worth writing a little bit of code.
Help Build
Even if you’re not able to (or interested in) doing a side project or an open
source library in Elixir, there are a number of open source projects out there
with requests for work.
The broad Elixir community depends on a significant
amount of open source code, which in turn means that when we strengthen those
projects we strengthen the community.
This work may include writing documentation, fixing bugs, cleaning up code to
resolve issues, improving test coverage, or adding new features. In a lot of
those projects, there is a list of good issues for beginners. This article does
a nice job of giving concrete suggestions for how you can
contribute.
Here’s a list of open source Elixir projects with open
issues. One thing you can even do
is go through the open issues in open sourced repositories and see if you can
replicate the problem (or further define or refine the problem at hand) – even
if you don’t know how to solve the problem, you can still work to make the
problem easier to solve for someone else.
I was fortunate enough at the 2022 ElixirConf to have a conversation with Chris
McCord, who created the Phoenix web application framework. When I shared with
him about feeling like I’m not qualified to help (even though I’m a “principal
engineer”), he told me that what he wants to see from people who collaborate on
Phoenix with him is folks who are kind, thoughtful, eager to solve problems, and
eager to learn.
None of those things require any particular expertise in Elixir or even software
development.
Alongside writing code, you might do things like help coordinate a meetup or
volunteer at a conference or event, or otherwise provide logistical support to
things that help the community.
For example, I have no idea whether Maggie Tate writes Elixir ever, but she’s an
absolute pillar of the Elixir community because of her work organizing Gig City
Elixir, editing audio and video for Grox.io’s Elixir work and BEAM Radio’s
podcast episodes, and all the other things she does that I don’t even know
about. (Hear Maggie talk about community building through
conferences).
You can help build the Elixir community by writing code. You can help build the
Elixir community without writing any code.
If you have the time, energy, and desire, you can absolutely strengthen the
ecosystem by contributing to existing open source projects and community
efforts. And regardless of how much time you have and how skilled you are right
now, there are projects where you can make a meaningful contribution and where
your help would be appreciated.
Help Teach
Communities are people united by proximity, shared interests or values, or other
common factors. Part of strengthening the community is lifting other people up.
More concretely, you can strengthen the Elixir community by helping to teach.
This may mean answering questions on Stack Overflow or in the Elixir Discord
server. It may mean writing articles and then sharing them. It may mean doing
some pair-programming with your friend who’s learning Elixir so that you can
learn together.
If you’re learning with friends, or if you’re teaching colleagues, you might
consider some of the books listed below as well as the Elixir track on
Exercism or the open source
curriculum put out by Dockyard
Academy. The Elixir
School resources are also free and good.
Additionally, teaching is a great way to learn.
As we climb, we should work to lift others up too. But the first step is to
climb.
Buy Books and Courses
There are a number of really excellent Elixir books and courses available at a
number of different price points. Buying these gives money directly to the
authors (many of whom also do meaningful work in the Elixir community) and sends
a signal to publishers that they should publish more books about Elixir.
Grox.io offers some really great trainings and Bruce and
Maggie Tate are fantastic and some of my favorite people. As you get further
involved in the Elixir community, you’ll see all sorts of good things around
them.
The Pragmatic Press
has a great Elixir series (formerly edited by Bruce Tate, now edited by Sophie
DeBenedetto who is also a wonderful person) covering a wide variety of topics.
My personal favorites are Designing Elixir Systems with
OTP
(Bruce Tate and James E. Gray II) and
Real Time-Phoenix
(Steve Bussey, who incidentally has From Ruby to
Elixir in beta).
The Pragmatic Studio offers some excellent video
courses, and they do a great job of keeping the courses up to date. I used their
LiveView course to learn LiveView a few years ago, and will happily recommend it
to anyone who asks. Mike and Nicole Clark are fantastic teachers.
There are a bunch of other great books and courses – far too many for me to
list here with any level of exhaustiveness.
And every purchase you make means that more dollars are going to people who are
doing the work.
You can also often work with course creators and authors to
purchase and then give away books or access to courses to people who otherwise
might not be able to afford them. This has the double effect of helping someone
else learn and giving money to authors and creators.
Finally, as you read and learn, consider reaching out to the authors to thank
them for their work and to tell them what you liked about their
book/class/video. Consider reviewing or saying nice things about these books or
courses publicly. The books I have and enjoyed I purchased mostly off the
recommendation of others, and I know several people who’ve bought books because
of recommendations I made.
Along with this, you can also attend conferences (or buy virtual tickets if you
can’t or don’t want to attend in person), or just watch the recorded talks
later. This also puts money back into the Elixir ecosystem.
Shop Local
At a bigger scale than book or course purchases, we can (when the opportunity is
there and reasonable) choose to purchase software or products from companies
that are known to use Elixir. For
example, at Launch Scout we use Discord (written at least partially in Elixir)
for our internal chat tool and we use Divvy (also written at least partially in
Elixir) for our corporate cards.
Maybe this means using Envato for digital assets or Felt for your maps or
CoverMyMeds for your medication needs or Podium for communicating with your
customers or Pinterest for planning your cool garden party.
Even if you’re not able to use Elixir directly, using vendors that use Elixir
helps there to be more people who get to write Elixir as part of their day job
and helps to make the case for companies to choose Elixir (to borrow from the
Cranberries, “Everyone else is doing it so why can’t we?”).
If you’re looking to hire a consultancy to have some new software built, perhaps
you talk to a company like Launch Scout that specializes in Elixir and has a
reputation for delivering great work (this is absolutely a shameless plug; there
are a number of other consultancies that also specialize in Elixir and who also
do great work. We’d prefer you work with us, but we’re thrilled if you’re working
with any agency that specializes in Elixir, even if it’s not us).
Advocate Internally
If you’re a software developer you’re probably working on a legacy codebase
where the choice of language and framework was made without you (and probably
well before you even started working on this project). Doing a full rewrite in
Elixir probably isn’t realistic.
That said, there are still a lot of opportunities to use Elixir. Most companies,
even (especially) those with a SaaS product, also have a variety of internal
line-of-business tools that the public never sees. When the opportunity arises
to build a new one of those, or perhaps a spiked prototype of a new product, you
might consider advocating for Elixir. This
article
makes a strong case (that you can absolutely crib) for picking Elixir and
Phoenix for your next web application.
You might not succeed in convincing anyone on the first try, but with
persistence and perhaps some strategic show-and-tell of your own side projects
(or things that others have built with Elixir) you may be able to sway
decision-makers. One strategy we’ve seen succeed in the past is an internal
“hackathon” – by getting the development team actually writing Elixir (instead
of just talking about writing Elixir), they were able to address the open
questions and concerns and make a more informed choice.
To the extent that you can, advocating for projects to be done with Elixir at
your workplace helps to strengthen the Elixir community by increasing the number
of people who write Elixir professionally (some of whom will go on to also
contribute to open source, or speak at conferences, or write articles, or teach
others).
Relocate When You’re Ready
If or when you reach the point where you want to be writing Elixir code
professionally, you can absolutely start searching for an Elixir job.
At the time of this writing the hiring market for software developers is tough
across all languages and frameworks. But the newsletters listed above usually
have links to open jobs, and you might consider the following job boards:
- Elixir Jobs
- Elixir Radar Job Board
- Elixir Jobs on LinkedIn
- Elixir Forum Job Board
- Elixir Jobs on Indeed
Hire Elixir Developers
Even better than getting a job as an Elixir developer is creating new jobs for
Elixir developers.
One of the best ways to strengthen a community is to put money into that
community. Another of the best ways to strengthen a community is to make it so
that more people can take part.
Creating new jobs for Elixir developers accomplishes both of those things.
You can read Launch Scout’s Essential Guide to Hiring Elixir
Developers to learn more about how
to improve your hiring process and what to look for. Or if you want to hire some
junior developers and you’re not sure how, you might talk with us about
Elixir apprenticeships.
Concluding Thoughts
There are a ton of ways to help build and strengthen the Elixir community (and
most of these can be generalized and modified just a bit to help strengthen any
community).
Some of those ways are accessible to almost anyone with an internet connection
and 10-15 free minutes per day.
Others (like organizing a conference, hiring Elixir developers, or starting a
new company that builds software with Elixir) require a little more work.
Every community (and in fact every meaningful achievement) is built through the
shared efforts, both large and small, of a lot of people working together. It’s
usually chaotic. But it can (and should) be healthy. You have a lot of different
ways to help, and a pretty neat community within which you can do your
particular version of the work within the bounds of what you currently have the
ability (and desire) to do. Small contributions are still contributions.