Reality check - about market prospects of Elixir/Phoenix

I have been Learning Elixir / Phoenix with a friend for past few weeks. He has a good number of experience years behind him (7-8 y) but I am a new dev (1-2 y experience) (25 y old).

We have been pretty happy with the no unnecessary headache which is almost opposite of js ecosystem in terms of “not doing unexpected things”.
So personally, I am happy.

One thing that bugs me sometimes is that the market size of elixir is small. Not many people I talk to know of such a thing (Elixir /phoenix).

ruby on rails has a greater market size. So getting a role there and switching companies is easier for a RoR (ruby on rails) developer but not so much for Elixir phoenix guy.

So, it leads me to conclude - just for being “safe” in future, I might have to learn RoR too. By "safe* , I mean retaining the ability to switch companies shall some personal circumstance demand so.

I have a few questions.

  1. What is the market size of elixir.companies?
  2. What is the growth rate of such market?
  3. How should a young dev position himself ?

If anything else my unexperienced. Brain has missed.

7 Likes

Check out the #jobs channel on Slack. Seems pretty active and growing. I’m sure it pales in comparison to RoR, at least where I’m from it does.

Skills are transferable. Learn one thing well, then you’ll pick up others easily.

2 Likes

I never really made technology decisions based on “market size”. I learned C# because my school taught it, went with Rails because it was sexy, went with Meteor because it was productive, went with Typescript because it was better than javascript – and finally I went with Elixir in 2016 because it’s lovely to use and makes my life easier.

If you’re good you can get a job with anything. If anything, if you go with a super mainstream language you are competing with everybody and their momma. Tell your friend to use something that brings him joy, life is too short. For example, I would neck myself expeditiously if I had to write Rust for my day to day job.

8 Likes

Hard to say but have in mind that Elixir jobs are not only in this forum. I’ve had a good amount of leads from HackerNews’ monthly “Who’s Hiring?” thread, and no small amount of LinkedIn leads as well.

I had no trouble interviewing for weeks, almost back to back every day, at 1-2 meetings for the day, one year ago.

But I’ll admit that at my last search I definitely saw repeating names several times so that’s another data point. The Elixir jobs world is not huge.

Only insofar as employers believing that doing stuff with Elixir/Phoenix is cheaper for them. (Which they seem to believe BTW.)

I was regularly told by former colleagues and ElixirForum frequenters that Elixir jobs have a hard payment ceiling, usually 5000 EUR a month (although exceptions for bigger sums are made for senior devs or consultants).

I have no market data but I’d say Elixir’s job market has been growing slowly and steadily for the last 6 or so years. So there definitely are more Elixir jobs today compared to last year this time. But I don’t think the growth is explosive, or that the market itself is huge. It’s IMO big enough though.

Basically: be able to completely maintain a Phoenix project by yourself. That will make you sought after.

A good starting checklist is:

  • Ecto schemas
  • Ecto migrations
  • Phoenix views
  • Phoenix templates
  • Phoenix controllers
  • Phoenix layouts
  • Phoenix contexts
  • The basics of HTTP(s) security like CORS and how to set it up in Phoenix
  • Assets compilation (with webpack or esbuild)
  • Some basic CSS so you can apply classes to HTML elements
  • BONUS POINTS and very liked by employers: DevOps skills like setting up and maintaining the production deployment stack at AWS, GCP, DigitalOcean or Heroku

Boom, you are now desired by Elixir employers.

20 Likes

We’ve had more jobs posted on the forum this year than ever before - I even posted about it a little while ago:


Put yourself in the shoes of a potential employer - why would they want to employ you? If you can think of reasons why employing one person over another would be attractive or make sense - and then work towards that - you can give yourself an advantage.

I think something employers value immensely is passion and the desire to continue bettering yourself - employing people is a costly and long-term endeavour and so if they know the money is better invested in you than someone else you’ll have a greater chance imo.

Also take some time to look through job postings in the sectors you’d like to work in - they often give you clues about what type of developer is highly sought after in that particular field. My best advice tho is to do everything you can to make yourself more attractive/employable than others - whether that’s by creating cool libraries, writing blog posts, reading lots of books, being visible in the community or anything else that will get you noticed or appear valuable to an employer :023:

3 Likes

The Elixir community is, in my opinion, experienced, thoughtful and generous with sharing their knowledge. You will learn ways to tackle problems that will set you up for a solid career in whatever the favoured language of the day is. Over time, that’s way more valuable than having a particular technology on your resume.

8 Likes

Love this checklist. This is a very concrete thing to get started with. I have finished top 8/11 in this already :slight_smile:

Thank you dimitarvp.

I agree with ‘peace of mind’ development in Elixir. and I have spent more time on elixir forum than any other such forum. (Feels like home) Shoutout to AstonJ!

2 Likes

There are use cases where Elixir is a great fit. In such situations, the company might be looking for Elixir devs of any seniority.

There are cases where “any” technology would do. In this space, Elixir is in the same category as Rails and Django, maybe a bit less popular. If you’ve completed the checklist from @dimitarvp, you are in position to convince the company to do the project in Elixir. What they get in return is an excited developer who’ll stay with the project at least till the MVP lands on production. And that excitement translates into increased lines of code most of the time.

3 Likes

The jobs channel on slack, threads on Twitter, and posts on this board have picked up in the past year. For my own amusement I scanned through the “Who’s Hiring Dec 2021” thread on Hacker News and put together a tally of hits per backend language—this isn’t unique per posting:

  • Elixir - 14
  • Rails - 44
  • Python - 62
  • Node - 32
  • C# - 9
  • Rust - 32
  • Golang - 15
  • Java - 6
  • Kotlin - 12
  • PHP - 9

Elixir is doing alright :sunglasses:

11 Likes

And then mix the demand with the supply :slight_smile:

If there are 100 Javascript positions (demand) and 4000 devs those position (supply) you have less chance to be picked vs 10 Elixir positions 5 Elixir devs.

When you have good ‘non-code skills’ the language might be less important. At our company we hire a good Typescript dev even if he has to write Python. Cause most skills (code clarity, documentation, communication) are language independent (AND most devs like to learn another language so for them it is a plus)

5 Likes

I totally agree with importance of ‘non-code-skills’!

1 Like

One thing not yet mentioned is that you can learn on the job. The more senior you get the less it matters which specific technologies you know as you can pick up what you need to know on the job relatively quickly.

5 Likes

All check items passed for me.
Any one want to hire me? :grinning:

2 Likes

Honestly, if you know Elixir, I believe you are automatically qualified for Ruby/Rails jobs too, if needed. I think Elixir is often seen as next level Ruby/Rails and natural next step from RoR. So taking the step back if necessary shouldn’t be a problem.

^ I am curious if others have similar experience and point of view?

Also Elixir has some unique features that are very sought after in some situations, often situations where RoR reached its limits. So Elixir is not going anywhere.

Many senior devs tell me that once you get past certain threshold of experience, the technology doesn’t really matter. They can switch languages and be productive within days or weeks. The core computer science concepts stay, they are just mixed into different cocktails and flavours in different languages and frameworks.

As an example, I consider myself a hobby developer. Recently I’ve started playing with Rust smart contracts. And coming from Elixir it was super easy to pick up the pace! There are plenty of similarities, same naming, and many of the goodies from Elixir can be found in Rust. Plus obviously there are the core basics from C lang.

Moral of the story: you cannot really go wrong with Elixir and going to dead end. Even if the road seemingly ended, there are several directions you can easily continue from there.

6 Likes

This is true but with one very important caveat: the technology’s runtime environment.

The BEAM VM is truly unbeaten to this day. People keep trying and they’ll eventually catch up but as of today, try to have a BEAM-like runtime and you are facing months of coding and fine-tuning… in the best case scenario.

Sure I can go back to JS, PHP, Ruby/Rails, C/C++, Java and Go anytime I feel like it and it would take no more than 2-3 weekends to catch up, but none of them will give me the guarantees of the BEAM. I’ll have to spend quite a bit of time doing very defensive coding. It’s an uphill battle, one you have to be adamantly sure you have to fight, otherwise you’re just banging your head against the wall for no good reason.

(Languages like Rust / Haskell / OCaml definitely can make the journey shorter and more pleasant – but they can’t take you all the way yet. F.ex. with Rust you can just make two thread pools – one for CPU-bound tasks and a bigger one for I/O tasks and with careful manual management and good error handling you have 80-90% of the BEAM already, especially when you are always queueing work through channels and not directly executing the tasks in the main thread. But still: no supervisors, transparent restarts etc.)

So maybe I am a senior dev, maybe I am not (I could just have 20 times 1 year experience as the saying goes so I could just be a physically old junior dev :003:), but what I’ve noticed is indeed that syntax and language in particular don’t matter – but the compiler apparatus, tooling and especially the runtime matter, a lot.

8 Likes

I totally agree, the BEAM is our secret weapon here. The only reason there are not a huge number of companies asking for Elixir devs yet is because it hasn’t made a name for itself, but any CIO that recognizes what technology allowed WhatsApp to move to incredible scale with so few people will be smart to pay attention to anyone bringing that stack into the company.
What I plan to do when I have my skillset solid enough, as in the checklist posted above, is to simply walk in, offer my services, and have them give me a coding challenge, put me up against their best in-house dev and give us one hour to do an MVP, and see how far we both get. I know that I can get a cluster up on fly.io in minutes, and my solution will include end-to-end tests, failure recovery, structured db migrations, clean separation of concerns, and the list goes on. All the stuff that takes weeks or months of grueling work by experienced developers to move to scale is already done.
Their in-house dev will be sweating the stress tests because I know he will have none of that, it will be some chewing gum and baling wire cobbled together with JS and Python or whatever, so an experienced CIO will look at the two solutions and know which one has the ability to scale without requiring more people to keep the whole thing running.
Elixir/BEAM is a revolutionary tech stack, your job as an applicant is to make the case to the decision maker that one Elixir developer has the firepower to replace a small team of JS/Node/PHP devs, and all the work he/she puts out will have very little technical debt in comparison.

7 Likes

I have interviewed with a few companies looking for Elixir developers. My take is that they are usually looking for senior dev with years of professional Elixir background to transform their current stack to Elixir/Phoenix.

So, the first thing is, younger dev won’t have much chance.

Secondly, even with my years of professional development background, I would not be the interest of such companies, since my Elixir experience are only on hobby and side projects.

It then becomes a chicken and egg problem. The developers won’t find a job to gain professional experience. The companies can’t find good senior Elixir devs.

3 Likes

How do you think should a young dev (or mid level (not senior) dev) position himself with respect to company needs you mentioned above?

Specifically,

  1. What to focus on learning while learning Elixir?
  2. How else one can develop needed competence?

If I may chime in, to me the whole Elixir boils down to The Erlangelist - To spawn, or not to spawn?. Once you fully understand this and it “clicks” for you, then you understand what’s the whole point of Elixir, where it brings value over other tech, and what kind of problems are easier to solve thanks to it. If you can demonstrate that understanding, then you’ve made it :slight_smile:

2 Likes

Sama think happened to me as well, for new elixir developers it’s very hard to get a job because whoever is adapting elixir stack is either small teams or startups where they might not have much resources to spend on new elixir developer

I almost given up on elixir and was trying to get python job, luckily I got a call from the guy who interviewed me 3 4 months ago and asked me to on board as elixir developer now happily working as elixir developer

Maybe currently many people/companies don’t know about Elixir and Phoenix but elixir adaption happening across industries very fast, many companies adapting elixir, as per my job research

My note on Elixir; once you well versed with elixir you can quickly pick up any language very easily

1 Like