How good is the Elixir and Phoenix job market?
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.
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.
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.
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.
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
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.
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.
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.
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.
PS: I have tons of open Elixir roles at the moment: https://ctd.mbta.com/
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.
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.
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.
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.
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.
We would take it as an pretty clear signal of the kind of dev we want to have on the team.
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
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.
As per the job market, it grows every year.
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
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.