back

by colesantiago·4y ago·view on hn ↗
Very curious about the recent surge of Elixir / Erlang posts on HN, is there a reason for this?

How is the the job market surrounding this as well for Elixir / Erlang devs?

10 comments
Elixir shops are learning quickly that the best bet is probably to hire a senior dev that wants to learn and just give them a couple of weeks to learn.

As for the surge in interest, I can’t speak for everybody but when I dove into the language I realized it addressed virtually every short term and long term problem that I’ve experienced in my programming career. The rules it sets out force things to be done in such a way that many issues are avoided as a by product.

I find it balances all of my concerns better than anything else (productivity, performance, maintainability, scalability, learning curve, concurrency, stack simplification, capability, refactorability).

I was hired by super.mx with 3 days of elixir under my belt. We're still hiring btw...
Really liked the recent podcast and hearing from you how you fixed those slow compilation times issues. Looking forward to hear more from you!
We do this. We're only a small 12-person software agency, we have two Elixir developers right now.

When we hired the 2nd, we looked for someone who had good knowledge of Node, Rails, Laravel or whatever and were excited to learn Elixir/Phoenix. Then they completed a Udemy course and started practicing. It worked out pretty great!

If you are one of these shops please email me :)

I have been dipping my toe in functional land through fantasyland / ramda

Shops that will allow devs the leeway to learn and level up will definitely have an advantage. Oh btw - we're hiring - gregory.ostermayr@passitdown.com
Yeah, I'd be into that.
I am starting my first Elixir role tomorrow. I come in with no real-world experience (edit: no real-world experience with Elixir specifically - I have a mid-senior level of experience using other languages), just some tutorials (Elixir Koans and Pragmatic Studio) which helped me submit a decent code sample. There aren’t a ton of Elixir roles, but hiring managers also recognize the shortage of devs so for a junior or mid-senior role they might overlook a lack of formal experience with the language. Elixir roles also seem to have pay scales as well as work arrangement flexibility that are higher-than-average.

Geography-wise, I’ve noticed growing, “hipster” cities like Columbus (where I live), Denver, and Austin have a pretty decent share of the Elixir job postings (although, again, if you want to live elsewhere there are lots of fully-remote Elixir roles out there).

I don't really know about the job market, but Erlang/OTP has been a very fine piece of technology for the past 30 to 40 years.

Elixir is quite new (2015) and with every release it gains in maturity, and the ecosystem is growing. IMHO, Mix was a game changer in terms of tooling.

Also, with tools like Horde[0] and libcluster[1], it became very easy to setup an Erlang/Elixir cluster on Kubernetes.

When you work with distributed systems, the OTP framework is a godsend, it's no surprise to me that it's finally getting traction.

Also, I like to use Rambo[2] to call small go/rust binaries that I ship with my Docker images, useful for features where performance is important.

  [0] - https://hexdocs.pm/horde/readme.html
  [1] - https://hexdocs.pm/libcluster/readme.html
  [2] - https://hexdocs.pm/rambo/Rambo.html
> Elixir is quite new (2015) and with every release it gains in maturity, and the ecosystem is growing.

One thing I really like is that it's considered mostly done. The community has the wisdom of not always trying to add new features and deprecating old ones. There's no 2.0 planned but that doesn't stop people from doing impressive work like Nx. I don't know about the ecosystem, but the language itself seem like a stable investment.

This also has the benefit that your code is likely to keep working in 10 years.
That's what I meant by "stable investment".
> Elixir is quite new (2015)

I suppose you can say that; that’s when it 1.0ed. But Elixir was surprisingly stable pre-1.0; I was writing production Elixir 0.6 code at Spawngrid in 2012!

Really, the 1.0 announcement felt more like a formality than anything; there was no discontinuous switch from “throwing features at the wall” to “considered engineering.” Changes to Elixir have always been considered — and props to Jose Valim for that! :)

More demand than supply, definitely. It’s hard to hire Erlang/Elixir devs from outside.

Some companies just avoid using the platform because of that, but others (like my own company, Covalent) hire devs who seem like they’re experienced in learning languages generally, and then train them in Erlang/Elixir internally.

These devs don’t move around much, though — a company willing to do internal promotion/education is usually pretty good at retaining talent. So new companies looking for Elixir devs still don’t find as many as they’d like.

(An interesting other side effect of this dynamic is that it’s easier to hire senior Erlang/Elixir people than junior ones, since most Elixir devs you’ll find that have ever used the language for anything serious, learned it at work, and so usually have a decent chunk of their career already behind them.)

As a sample size of 1 I can say I didn't have an issue finding an Elixir job and those I did speak to were keen to get an Elixir dev asap. For context I have a few years in Elixir and over 10 as a developer in general. Better yet, the jobs in question were remote only.
I'm retired but look around a bit for interesting jobs using Erlang, and I don't see a whole lot of listings that mention it. More that mention Elixir. And one company (smarkets) that specifically calls out that they're not using it anymore.

But, some of that is I think because, as others noted, it's hard to find Erlang developers, it's easier to target for good developers and convince them to learn Erlang on the job. So I'm guessing some places use it and don't mention it.

I was working at an Erlang shop and out of all of our hires and interviews I did, we hired one person with Erlang experience (from a conference) and I recall interviewing one other candidate with experience. Oh and we had an intern who did a college course with Erlang, but interned in a client group that was limited to j2me (sorry!).

I guess the reason is enough people upvote it? HN is pretty popular for nichier tech like Clojure, Julia etc. It gets as many votes as Java I think because the community in general likes reading about exotic stuff.
Are Erlang/Elixir really that exotic? I interpret exotic in our context to mean a language aimed at academics and very advanced programmers but lacking mainstream appeal.

Erlang/Elixir strike me as very pragmatic and, compared to Haskell/Lisp/Clojure/Scala/Julia/etc., they seem more beginner-friendly.

I don't think Erlang/Elixir is many people's first language, no. It's advanced. Someone who is doing their 1st programming project would be better off choosing javascript / php / ruby if they are building for the web. It's quite unlikely their first use cases will be 2 million concurrent web sockets. So given it's not mainstream and it has the advanced aura I think it's fair to call it exotic or " language aimed at academics and very advanced programmers but lacking mainstream appeal" as you just said.
I honestly don’t see why a beginner couldn’t learn Elixir. You can start with if/else, and later learn how to do things more elegantly with pattern matching. You don’t have to use processes and GenServers right away (and even afterwards, you can use a library/framework which provides an abstraction). The ecosystem has many advanced features and use cases, but simple programs are not much harder to write than they are in Python or Ruby.

In some ways, getting programmers to start out thinking about “everything as an expression” and immutability-by-default might help them write elegant and robust code earlier in their journeys.

> but simple programs are not much harder to write than they are in Python or Ruby.

Even if they are just a bit harder it makes it a questionable choice for a beginner. And let's not forget the huge amount of Stackoverflow answers a stack like Python/Ruby have.

> immutability by default

I don't know that beginners should think about that stuff.

There was a class aimed at middle school? Iirc Students where they were taught erlang and by the end of two classes they had built a crude networked chat system, which, believe it or not, gets their attention. You can't really do that so easily in any other language system.

> I don't know that beginners should think about [immutable by default].

Yeah. Beginners should not have to think about mutability. So, immutability by default is the right choice. Details like "why don't integers mutate when passed to a function versus a dict" should not ever have to be answered to a beginner.

Right, no one has ever built a chat system with Node or PHP or Python...just super hard. Like importing a library and 10 lines of code hard.
I don't think Elixir is aimed at academics, though. It's very clear that it tries to be as pragmatic as possible.
Yeah agree, you can erase academics from that sentence. Academics mostly use Python and R and Python is actually super pragmatic.
To clarify, by “aimed at academics” I meant CS academics, not researchers in other fields.
1) It’s worthy of the praise and attention, ( The BEAM is a marvel of engineering). 2) It’s just “exotic” enough for people who work in Java/Ruby/JS to be interested to read and upvote. The articles shared tend to be easy to understand and bite sized. 3) There’s enough demand out there and Elixir Devs are usually paid pretty well, that market( for the time being,) is pretty small.
It's not a particularly recent trend irt HN: https://www.flickr.com/photos/stilist/3348380060/
As far as I've seen, Elixir job market for Europe is almost nonexistent, sadly.
Don't upset the zealots by talking about reality please, you will get downvoted to oblivion.