The future of Elixir and Phoenix

@AstonJ Thanks. I would appreciate hearing the idea.

2 Likes

That is one of the more accurate statements out there. It’s really depressing to have the answer to so many problems and be unable to use it.

4 Likes

Ok my take on it, as a quite “junior” dev, that just found a mainly Elixir job.

  1. Diversify. Sell yourself as a Distributed System specialist. Elixir will help you there, and there are jobs for these, where you will be able to use Elixir.

  2. There is a market and it is slowly expanding. Adobe have Elixir team, Pinterest, etc. But you will find mainly erlang jobs more than Elixir. And these jobs tend to be about solving really complex or critical problems. Which take us to the next point

  3. Nearly all the jobs are for “Senior” devs, and we have a really hard problem defining what it means. 90% of what you learned doing other languages mean nothing. And yes it is really frightening for the health of the industry.

I would like the community of people already working with Elixir in some companies to look at on boarding and how they could hire junior. And if it would really cost them more. We may, as a community, help provide them with curriculum and ideas to bring junior up to speed in Distributed Systems and OTP fast.

I know that some companies does it (Dockyard come to mind, NoRedInk once they are in prod probably, etc etc) but we need to have that talk at one point or another i think.

But there are jobs out there.

6 Likes

The reason why Elixir seems to be highly paid is because, at least in the US, most Elixir jobs are aimed at senior devs. Specifically, senior Rails devs who want to move to Elixir. These devs can already command $130k+ in big cities doing Rails, so they ask for the same salary when doing Elixir.

In general, non-mainstream languages appear to be highly paid because only developers who already are highly paid get to work with them.

6 Likes

The other correlation to that “senior dev” space is that is where the appeal is for elixir. The people I know who started reading up on Elixir and went completely starry-eyed over it are people who have devops experience, have dealt with the problems that come over the lifetime of systems, have dealt with scaling and concurrency issues, have dealt with bottlenecks between microservices and microservice deployment complexity in general…and then get into the architecture of Elixir to say “OMG! This fixes EVERYTHING!!!”

That makes the niche for Elixir more experienced. To somebody learning Elixir as a first language, they can learn how to do things and work in it but until they have to deal with these problems on other platforms they aren’t really going to fully understand what makes it so amazing. If anything, if you take a developer right out of school who’s learned all about object oriented programming and static typing…they are just going to think Elixir is weird until they understand how it solves those problems.

Years ago when I was running my own contracting business I took a sales course and probably the single biggest nugget of wisdom that came out of that class was “People buy pain relief.” If you think about it, it’s absolutely true. You don’t run out to buy stuff because you’re comfortable…you do it because you have a problem and you need a solution. If somebody wrongs you and you pay a fortune to a lawyer, you want relief. If you are in pain and go to the doctor, you want relief. If you want to be a better cook but don’t have time to practice, you might sign up for something like Blue Apron or Green Chef.

Elixir is absolutely pain relief once you experience the pain of the above described issues. I think it resonates with the ruby community because so many people in the Ruby world are Full Stack + DevOps. It’s a community tailored around empowering a few people to accomplish a whole lot and because of that the full scope of what Elixir accomplishes is a lot clearer. In larger organizations where responsibilities are more segmented, that might not be as clear. In those types of organizations, 60% of the selling point is “look…benchmark!” and 40% is “look…S.L.A.!”

Elixir’s going to make the most sense to smaller teams with big goals and experienced leadership IMO.

17 Likes

Top Paying Technologies by Region

If you look at the regions there is no elixir to see. I wonder what countries use elixir. In the US elixir isn´t listed in the top20.

2 Likes

I don’t think it is big enough to show up on the list but I am pretty sure the pay is good provided you can find a position

2 Likes

@GeoffreyPS There is hope! Our histories with writing code are quite similar, I"ve been in the industry for about 3 years now, started with ruby and had difficulty finding anybody willing to take a chance on a junior. After finding a gig working with JS for the pas year and a half I have been studying elixir for the past six months or so and feel EXTREMELY fortunate to have found a junior position at a firm here in Denver! The job market here for tech jobs is great at the moment and I"m hopeful elixir will really start to pick up.

I’ve thought a lot about the general issues mentioned in this thread, specifically how do we get more beginners interested in elixir and how to convince employers to hire junior elixir developers. I have plans to start a blog/website(even bought a domain www.elixirnewbs.com) to document my journey as a junior elixir dev in the hopes others, both devs and employers, would benefit from my experiences.

I kind of see the overall process being broken down into 3 stages:

  1. Gain basic level of competency in elixir to the point somebody will pay you to write it.
  2. Get employment and get up to speed as quickly as possible to start to contribute in a major way. (Junior level)
  3. After 18 months or so hopefully you are completely up to speed, at a mid/senior level and a major contributor.

The main issues I see from the employers perspective is that it is quite risky to hire juniors as they a) might fail and b) might look elsewhere after 18 months as their market value has skyrocketed.

Any thoughts? Feedback? Anybody think this type of site would be worthwhile or shall I let the domain sit idle like countless other ideas?

7 Likes

While i agree i would say that it is representative of a problem in the CS education system.

Plus it means we can go recruit in the sysadmin newb space, which is even more badly paid… or people without diploma.

Elixir work really well with beginners. Total beginners. We just need material toward it (a “the hard way” like book + workshop stuff like for an elixir bridge, which is happening).

Only senior research it but we can also do it the other way. As a community we could go into the space were emerging talent is and grow it.

2 Likes

I started to learning Elixir year ago and I never thought that anyone in my company heard about it, until… I found in company’s Confluence page entry about new project in Elixir. Now, luckily, I am the part of the team responsible for that project :slight_smile:

It was really a surprise for me, because the market seems to be “not ready for Elixir yet”, however there are a couple of companies in Poland that are experienced with Elixir eg. Elixir meetups organized by El Passion or Daft Code are well known and maybe most important people in Elixir community are there as speakers - starting from Jose Valim.

So for me: Elixir has a great and bright future :slight_smile:

1 Like

I don’t think there will be a huge amount of jobs in Elixir for some time. At the moment Elixir’s use in the industry seems more likely to come from startups that are deciding to use it from the beginning, or from developers at companies with existing products in other languages who have identified Elixir could be a better choice for certain applications of their’s and are convincing the team to introduce it for either a new project or convert a project. The former will likely be hiring, whilst the latter are probably going to continue hiring developers in their main languages until their Elixir codebase grows to a size where they start specifically requiring more Elixir developers (up to that point most of the devs will be predominately employed for their skills in other languages but have shown interest in working on the Elixir codebase and so are assisting with that).

So at least for the current time I think the best way to go about doing Elixir at a job, is probably to look for positions in other languages at companies that have shown interest or are using Elixir for a few small projects. And then trying to get involved in those projects. Trying to get hired as an “Elixir developer” is probably still too difficult at the moment, unless you’re in an area with a high proportion of the Elixir jobs.

I should probably mention I don’t work in this industry so this is just purely an outsiders view/analysis of the industries take to Elixir (might not be as representative of what’s starting to happen).

1 Like

After several months of the original post … is the situation the same? the demand for work in elixir / phoenix is small or growing?

I like elixir but I doubt I will get a job in it in the future, apparently in the last 10 years python (django), ruby (rails), it seems that they will not leave much space for new web frameworks or it will be possible for companies to migrate your platform to the new technology in the coming years?

you can see the future? :slight_smile:

1 Like

From PragDave’s recent update to his book :wink:

2 Likes

While the demand still small compared to C# or even Ruby, but the Elixir programmers supply is a lot smaller too. You can check there are lots of job offerings open for Elixir on http://elixirjobs.net or https://elixir.career, and as you can see, some of them are very old too. The companies had bet on Elixir, now it’s time for the programmers to join!

@pragdave is totally right, this is a great time to learn Elixir!

5 Likes

Small sample but most companies that try to lure me out are after Java and C# (and a little ruby but i dont even have any xp in that) still but in the last couple months have been approached by 3 different shops trying to poach for elixir work. And one other that had a significan erlang presence. I’d say it’s heating up as quickly as could be expected. I doubt it will ever surpass based on all the companies going for the industrialized coding approach but it needent. Elixir devs can accomplish more and still have time to drink and enjoy life more than those guys :). We’re doing a good job but I think we can improve the selling of the competitive advantage it yields. It’s really hard to quantify but is really significant I think

edit: all mentioned companies are west coast US

2 Likes

####Caveat: massive speculation ahead
I suspect that adoption will to a large part depend on Elixir enthusiasts with a broad skill set introducing Elixir in diverse locations at the most opportune time.

That means getting hired for legacy skills (ruby, python, etc.; possibly even only to analyze WTH the current system is doing) or more modern frontend skills and opportunistically cobble together a Phoenix proof-of-concept when concurrent features are considered on the legacy platform to demonstrate that it may be time to “switch horses” in order to have a sane path forward.

Unfortunately that puts the burden on the Elixir developer to also maintain a significant non-Elixir skillset to get a shoo-in for Elixir. But that may be less of an issue as I suspect that most Elixir devs will be polyglots anyway by necessity (C/C++/Rust for NIFs, other languages for legacy applications to be interfaced with via ports and various web technologies for web applications).

Once “switching horses” is a possibility the biggest challenge is the perception that Go-lang is the more modern choice (example) for a rewrite (or new project) - I guess that’s the point where the BEAM’s approach to fault tolerance needs to be evangelized (which may not be that simple).

Go-lang may also have an advantage in terms of resource availability. It wouldn’t surprise me in the least if lots of devs of the one language mentality will switch from JavaScript, Python, Java, etc. to Go in order to “modernize” themselves.

4 Likes

I think it’s to an extent true even for Go. There are very few pure Go shops generally people are expected to know something besides Go (Python, JS/Node … or whatever other lang. was/is part of their current code base). Why Go has such significant uptake is a mystery to me personally. There are few pure Elixir jobs and that will prob. remain this way for a long time. On the plus side Elixir has much better tooling vs Go and is much more productive I think going forward Elixir with Rust will be pretty killer combo.

My hypothesis is that it is happening by design - as per the Go-lang vision statement it was meant to be easy to pick up for anyone already active with any “C-like” language. So there is a fairly low barrier of entry coming from say C, Java, JavaScript, etc.

Compare that to Elixir where you have to leave imperative and OO programming behind and learn functional programming, concurrent programming with processes and finally supervision strategies. Adopting Elixir (the BEAM) is not the path of least resistance - comparatively speaking.

1 Like

I’d agree but I think there is one important aspect that Elixir is way easier for concurrency especially for people coming from JS, Python, PHP, Ruby etc. since they never dealt with various data races etc. and for them it’s very easy to make mistakes and those are the kind of mistakes that are very hard to debug especially in prod. Plus for me for lang in this day and age to not have a good dep. manager is just inexcusable (even Python has piping now).

Or it can be called the deferal of gratification; one of the cornerstones of western civilization. The longer people can do up front work/research without worrying about getting results instantly, the more adoptation/efficiency can happen. Of course for those that already did that up front work, many of us are profiting and sharing the rewards already :slight_smile:

Felt that way 15 years ago when learning Prolog after Java/C++/C were mainly taught. Super difficult grind to wrap head around but it just felt so damn efficient when you get it. My project scope over short time periods increased afterward quite a bit