HACKER Q&A
📣 akudha

Is it worth learning Elixir, from a jobs perspective?


How long does it take for an experienced programmer to learn Elixir good enough to get a job?

How good is the Elixir and Phoenix job market?


  👤 peterbonney Accepted Answer ✓
We use Elixir, and basically every developer we’ve hired has had zero Elixir experience prior to joining our team. Like any language it takes some time to get up to speed with the ins and outs, but I’d rather have a good developer with no Elixir experience than a mediocre-to-poor developer well versed in the language.

I can’t speak for any other company, but I suspect that any team that has made the decision to use Elixir is (a) well aware of the low market penetration it has, and (b) not screening out resumes based on inexperience with the language.

Edit: I should add that, despite all of that, I think it’s a fun language and any developer would probably enjoy dabbling in it regardless of vocational prospects.


👤 onlyrealcuzzo
You're not going to have a TON of jobs available where you can use Elixir - but if you want to learn Elixir to learn other valuable skills like concurrency and parallelism or just expanding your mindset by using a functional language - then that's obviously more useful than... not learning those things?

Architecturally, the BEAM - to me - is super interesting and enlightening. So learning more about that - I think - is great for distributed systems and fault tolerance.

Also - Erlang is a really cool language, too, I think.

In many ways, it's obviously more valuable to learn something more practical like C or Java.

But in other ways, I spent a decent amount of time playing around with Elixir, and indirectly, it was one of the most valuable things I've done in my career, I think.


👤 AlchemistCamp
I'd say Elixir is an absolute super power when it comes to building a startup with a small team and small budget. It's fantastic if you're an experienced solo dev who wants to indie hack. It's also a great paradigm to learn that will level you up if you've never worked with anything similar.

I'm not sure it's that great if you're just looking for a job, though.

I faced a lot of automatic screening rejections myself—even after having worked at a Chinese startup focused on iOS, at Groupon, at a couple of YC startups working with Node + React and then on my own (failed) startup where the primary language was Elixir.

If I recall correctly, every single European company I applied to rejected me without even a phone screen. Later, I did a bit of consulting where I built the back-end of a platform for automated trading. It went well and since then I've gotten quite a bit more inbound interest. Finding decent work with Elixir was harder for me since I'm living in Asia. But it was also easier than it would be for many others, since I have a body of work in the form of hundreds of tutorials on YouTube.

What got me my current role was that the founder signed up on Alchemist Camp, hired me on a one month contract for the initial launch of his next startup. That contract was renewed for two more more months and then renewed again in an on-going arrangement. Since the founder is the former CTO of one of YC's top 3 startup successes, I'd say it's the best career opportunity I've had to date.

It's worked out well, but in all fairness I'd say that someone with the same experience and a YouTube channel about another technology would have found decent contract work more quickly.


👤 leifg
Having had 3 full time Elixir engagements and one engagement where I partially used Elixir, I am not so convinced Elixir/Phoenix is the best career choice.

It limits you to certain jobs and there is a lot of competition (from anecdotes I see there is a lot of interest for developers to learn but not a ton of interest in companies to use it). I started with Elixir in 2015 and even though there are more companies now using it than back then, I don't see a strong upwards trend line.

Furthermore what happened twice: Elixir will be one or two projects within the companies. In one case it was a micro service architectures with plans to replace Elixir with a different language.

So worst case scenario is you will end up in a company that technically uses Elixir but for various reason you will not end up working in an Elixir based project and you only have a limited set of other languages to choose from. So at the very least pick a second favorite and apply to companies that use that technology.

All of that being said: I use Elixir for 100% of my side projects and love the language. I love the ecosystem and the community.


👤 donotlikefb
> Btw, The way recruiting works for niche jobs is largely keyword based (yup). Learn Elixir, put it in your linkedin and wait; the jobs will find you. > Disclaimer: I work for one of those staffing companies and know how automated job matching algos work.

Maybe a better way to test whether knowing Elixir is valuable would be, test it by saying you know Elixir (put on your LinkedIn) and see if you get recruiter outreach


👤 gregors
It depends on your goals. If it is primarily a Phoenix gig, things aren't that different from any other MVC type framework. Especially if it's a rest or graphql endpoint for a JS framework. If it's a Liveview app or something with heavy OTP going on it's going to take the average dev a bit longer to grok what's going on. I've met JR devs who are coding Elixir in their first professional developer job at this point.

There are quite a few open positions for Elixir currently. Are there enough open positions that that you can find one that suits your experience, salary, position, location, benefits, product, team dynamic, time zone, etc..... Thats where I feel everyone involved both hiring managers and developers need to give and take a little.

I say learning Elixir will absolutely stretch your programming mind and introduce you to other ways of solving problems. Give it go!

I actually took a job to bring Elixir to an organization. My most recent hire joined primarily because of getting to work with Elixir without previous experience. Have some conversations you might get lucky right out of the gate.


👤 bitwalker
I've been working with Elixir full-time since ~2014, and while I'm probably a bit of an outlier due to my open source libraries and speaking at conferences, I've so far found that there are always opportunities available if I look around. I also get the periodic recruiting emails as well, so there is certainly interest out there. I think if you've got the ability to demonstrate a good programming background (particulary in other functional languages), you won't have much trouble, Elixir is a pretty easy language to start being productive with in a hurry. I know of at least one organization that built up a whole team from people that were essentially brand new with the language and had success with it.

How long will it take to be good enough to get a job? If you are already a senior-level developer, with experience in a functional language, you can probably get hired without any experience at all. Otherwise, you probably need at least a couple months of getting familiar. Publishing an open source library as a means of demonstrating your skill level, and that fills some kind of niche, and allows you to get a feel for the conventions and tooling, is well worth the investment in time IMO. Someone really passionate about finding a job with Elixir could probably get up to speed in just a couple weeks, enough to be productive enough to contribute as part of a team - but that would be basically spending all day every day building something, reading a book like _Elixir In Action_, and actively asking questions on the ElixirForum, IRC, or the Elixir Slack channel.

I think its very doable, but you'll always be at the mercy of who is looking at the moment, and what they are looking for.


👤 aenis
You may want to call a professional staffing agency like Randstad or Addecco and ask if they are looking for people with that skillset. They have databases with skill scarcity per area and if you are lucky enough to find a diligent recruiter they will tell you.

Btw, The way recruiting works for niche jobs is largely keyword based (yup). Learn Elixir, put it in your linkedin and wait; the jobs will find you.

Disclaimer: I work for one of those staffing companies and know how automated job matching algos work.


👤 qhwamx
>> How long does it take for an experienced programmer to learn Elixir good enough to get a job?

To master Elixir would take months IMO because functional programming and OTP are pretty different from main streams. Still, it would be faster if you are already familiar with the concepts.

However, to get a job, you don't have to be so good. We're hiring, and we never have a chance to hire some Elixir gurus, but we did hire developers who are eager to learn Elixir and train them. On choosing a small audience programming language, the decider (our VP of Engineering) had already been aware of that. We are pretty happy so far because:

- We are very productive because of Elixir (for language features and BEAM); - We can hire intelligent people easier because it's easier to filter.

On the other hand, I applied for a lot of Elixir jobs. My experience is that it's effortless to get into the interview. But the result depends on how well you match each other.

You may find a company that is willing to hire you without too much expertise in Elixir at this moment. It shouldn't be very hard. I've been through more challenging things combined, e.g., looking for an Elixir job while at the same time jumping from front-end to back-end, seeking visa sponsorship, borders closed due to COVID-19. And yet I received some offers, even though not very smoothly (that's another long story).

>> How good is the Elixir and Phoenix job market?

I subscribed Elixir related jobs sites, email lists, slack channels, forum threads. According to my observation, it's still not widespread but growing very fast in the past two years. I don't know where you're but there are quite a lot in US and EU now.


👤 vcryan
If you are an experienced programmer, well, and experienced programmer who is actually good at programming, companies won't care if you know language X, because they will expect that you could just pick it up on the job.

PS: I have tons of open Elixir roles at the moment: https://ctd.mbta.com/


👤 nick_urban
I'm currently hiring Elixir developers at TalentWall, but since there aren't a lot of them out there, I'm willing to hire people who have only a moderate amount of Elixir experience, as long as they are experienced in related tech (MVC, Ruby, a functional language, SQL, etc.)

I would say that because of the Elixir dev shortage, it's easier to get hired for an Elixir job if you only have moderate Elixir experience than it would be for more mainstream languages if you had limited experience with them.


👤 newtoelixir
Judging the market by number of listings might be deceptive; yes, there are not a lot of Elixir jobs out there, but there are also not a lot of Elixir devs out there.

I don’t have hard numbers, but a hiring manager with whom I interviewed recently told me companies are looking everywhere for Elixir talent and having a very hard time finding it.

Elixir jobs also seem to pay better than those using more widespread languages (e.g. Java, JS, and non-AI-related Python), and are more likely to be fully-remote or at least somewhat flexible about WFH. So answering “how good is the market” also has a qualitative dimension.

If you have a decent amount of experience in other languages, learning Elixir to the point where you can demonstrate passion and potential should not take more than a weekend or two. I recently watched about half of the Pragmatic Studio course on Elixir: https://pragmaticstudio.com/courses/elixir

I did it in preparation for a coding challenge, wrote some decent Elixir code, received good feedback about my work during the follow-up interview, and am hoping to start a new Elixir job next month.

I did some Ruby/Rails courses and tutorials back in 2012-2014 (Code School/Michael Hartl) before plunging into Python and later Java. I have no real-world experience in Ruby/Rails, but I do feel that my familiarity with that ecosystem and mindset helped me learn Elixir fairly quickly and have an intelligent conversation with my prospective colleagues.

I hope I’m not giving you false hopes, but really, you could do a lot worse than spend some time becoming at least acquainted with Elixir. If you fall in love with it, like I have, you might not even care how “good” the job market is.


👤 bryanrasmussen
If you are an experienced programmer I suppose you already have a job or can get a job with your experience, unless your skills have become devalued because the field they apply to are no longer sought after.

I would expect though that your experience is somewhere in the web area, so it seems unlikely that your skills would be so devalued that they are no longer sought after.

So if your skills are still relevant in the job market you should be asking not what job you can get with a tech you learn now but what job you can get in a future where your current skills have become devalued, or in a future where those skills have become suddenly much more valuable.

There is a view that what languages you learn have to do with improving your understanding as a programmer of different paradigms - in this view you learn Elixir because it will make a you a better programmer, but for a job market what languages and skills you learn maybe should be ones that complement what you are already highly competent at - as long as those skills are going to continue to be marketable.


👤 rememberlenny
Founder of a team of five here. For a sample size of one, we have a Rails based backend and it’s on our roadmap to migrate parts to Elixir.

We have a video based tool and the low compute plus multithreaded aspects of Elixir make it ideal for web based FFMPEG processes.

We are three engineers, all of whom are senior/principal level SWE.

If we were hiring someone next, we’d likely optimize for their frontend skills, given the app is the complicated part, and the API is trivial. That being said, we would expect them to have some advanced experience with a backend language, and to be able to pickup new things quickly.

I can confidently say we wouldn’t hire someone who has only done a few projects in a programming language, and hadn’t worked in a production environment. On the other hand, we would definitely hire someone without relevant experience in our entire stack, if we knew they have proven deep expertise in their own stack and the ability to learn/move quickly.


👤 CraigJPerry
>> How long does it take for an experienced programmer to learn

I'd guess about 2 weeks but I'd be interested to hear other people's take on this. I'd break that down as:

1. The syntax: an hour

2. The rules of the language & the grammar: Under 2 days

3. Ability to write all the idiomatic constructs from muscle memory: Under a week. Timebox yourself to 1.5 days reading the compiler, std library, popular big projects in the language and dedicate the rest of the time to writing

4. The landscape: the common tools, popular and essential libraries, some tidbits of latest news in the community: Under 3 days

You're clearly NOT going to be an expert in the language after 2 weeks but you're going to be productive as an already experienced developer.


👤 myrryr
We don't use elixir, but if we saw it on someones skill sheet we would suddenly become very interested in that candidate.

We would take it as an pretty clear signal of the kind of dev we want to have on the team.


👤 tapvt
As someone who is currently hiring for a non-Elixir role, I would consider experience in Elixir/Erlang/OTP as a positive signal on a CV, even though the current role does not require it.

👤 asdev
Programming languages don't matter for most backend roles. Most companies just look for general programming expertise or relevant expertise to what the job position requires.

👤 learc83
I didn't have a problem switching over with no professional experience and only a few small hobby projects under my belt. It took me a few weeks before a I ramped up enough to be able to start being productive.

This is coming from a Ruby, C#, F#, C, and JavaScript background.

My company is hiring btw if you're looking for an Elixir job. https://grnh.se/b87ce54f2us


👤 strzibny
Well...

It's a niche language. For number of jobs, obviously no. There are growing, though. Have a look at Elixir Slack channel.

For getting a higher pay check? Possibly. I knew 0 Elixir when I got hired as a contractor and I even asked for more money than ever before.

I think the smaller pool of talent can be in your advantage, but it's hard to say "yes" to your question the way it's phrased.


👤 snarkypixel
Most companies hiring for Elixir devs will still hire you as long as you have experience in other languages. imho it's more important to show you have production experience, can ship and are willing to learn. If there's a company you particularly like that is using Elixir, you could do a small side-project in it to show willingness.

👤 weatherlight
Yes. Look at the 2021 Stackoverflow developer survey. If you can get a job as an Elixir Dev, you'll be paid we'll. Also, people who use Elixir in production tend to be pretty happy.

As per the job market, it grows every year.


👤 arduinomancer
I don’t understand why people focus on being an “X language developer”

Wouldn’t you care more about what problem domain you’re working on and base your career direction off that?

To me languages are just implementation details


👤 xwdv
Tl:dr; it’s rarely worth learning an exotic or underused language specifically to get a job in that language.

Focus first on being a good developer, then find a job willing to take you in without experience and then you can be paid to basically learn and get up to speed with whatever language they want.


👤 Areading314
Do some searches on linkedin -- you will have very slim choices of company if you are trying to be working in a niche language like this.

👤 hit8run
No. If you know ruby not so long. Otherwise long. Not good.

👤 musicale
No.

👤 cutler
No. Remember the HN echo chamber is not the real world. Search Indeed.com if you want to face the music regarding a programming language's adoption.