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.
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.
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.
“But Andrew, how does this help the community?”
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.
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.
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.
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.
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).
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.
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.