Ask HN: Erlang and the telecom market
Hello folks, I was a telecommunications engineering student when I came across the Erlang language.
I was seduced and it looked like a good career for me.
By the description it was a niche language with a high demand on the market.
But it was 3 years ago and and I still did not find an appropriate Erlang position (I applied to all of the very few offers on the internet and it was not only the telecom offers)
How do one find an Erlang job?
PS: screw Elixir by the way
58 comments
[ 3.2 ms ] story [ 32.6 ms ] threadNot the attitude I'd be hiring for honestly.
It just seems completely out of context and aggressive. ¯\_(ツ)_/¯
I think the interpretation everyone seems to be taking (which is surprising to me personally!) is such that it's like Elon requiring people to put "Parody" in their name.
If OP is reading… care to elaborate in a more objective fashion?
As an Elixir neophyte, one of the things that is a small frustration for me is that you’ll get to a problem and there just is no solution, and when you ask on the wonderful slack channel, someone will pipe up with a bit Erlang you use for that. It’d be like learning Japanese, and for sizeable pieces of your communication, your instructed to go next door to the Latin class to figure it out.
As near as I can tell, there is no such thing in the real world as a “just elixir” application. Any shop/product of size would probably love to have your Erlang expertise, provided they didn’t feel you were hostile.
Most resources are targeting those who don't come from Erlang (mostly it was from rails). And my word are they being deceived.
I don't think the Japanese/Latin analogy quite works it's like elixir is rhyming slang and Erlang is english.
But everyone insists you can get by with rhyming slang alone. Errr. Nope!
But I digress, you can learn how the BEAM and OTP work as an Elixir dev without being great at reading or writing Erlang code.
(I don't consider using :timer or :crypto as having Erlang code)
But mostly that's more because it has been unnecessary rather than a dab at the language.
Discord, fintech, and sportsbetting also use BEAM pretty heavily.
Also 100% would avoid hiring you with the elixir comment.
(yes, there are exceptions. Bear with me)
I learned Erlang when we were programming Ericsson voice switches some twenty years ago, and even though Nokia also adopted OTP and did some pretty amazing things with it (including a Hadoop analogue that used Erlang to coordinate Python workers across nodes), I have only come across Erlang when looking at legacy workloads that needed to be moved to the cloud.
NFV and CNF efforts (i.e., virtualized and containerized network functions) I've come across over the past few years seem to be mostly Go or C++. Jaeger is a common tool. I see a lot of Postgres. I also see really weird CNI approaches (check out multus, because telcos still can't get over having dedicated network interfaces for things even though it's all just a virtualization sandwich and they really should just learn to use network policies).
The technicalities run deeper than web apps (because some thing are very, very finely tuned), but the key point is that the telco "bleeding edge" landscape is now indistinguishable from "web scale" K8s discussions, except that telco workloads demand fixed resource allocations nd we still rely _a lot_ on CPU pinning of specific functions due to latency/jitter sensitive workloads.
It's almost like you took low-latency, pseudo-real-time stuff from embedded systems and shoved it into K8s. No, wait, it's _exactly_ like that.
Source: I work in Azure for Operators and have been in the telco industry since the mid-90s.
I had never considered telecom suffering from the same issue. Do you know if there's been any work to improve scheduling to mitigate this requirement?
Think hyperscaler-style SDN, but largely on-premises.
I suspect that if it wasn't for the virtualization drive behind 5G, Erlang would follow suit as a highly paid legacy language.
As it is, since many legacy telco systems are actually being replaced entirely by virtualized solutions, I see older companies still developing in it, but all hedging their bets on other things (I already mentioned C++ in another thread, but Go and Rust, backed by suitable frameworks that employ Raft and other sync/HA protocols, seem to be in the forefront).
I'm not going to reach for libraries in Erlang, because mostly I've seen them not be there, and a lot of stuff is almost the same amount of code and fuss to use a library as to build the portion of the library that's actually needed in the moment. Any code that you bring in is code that you're running and responsible for, so it's got to be worth it. I've pulled in libraries that needed a lot of rewriting, and sometimes that's better than starting from scratch, and sometimes it's not. There's a fair amount of stuff out there where someone scratched their itch and left it as is; which is fine and thank you, but it might need a lot of help to be run in a production capacity.
I'm working a new job now and there's probably no Erlang in it. Which is sad, but I'll deal. That said, if I was working in Erlang and management said we had to switch, I would be out. It's one thing to work without the benefits of Erlang, it's another to be working with them and then have it taken away.
If any job I ever had did this, technical or otherwise, I'd leave too. Especially if you were going to rub salt in the wound and pick Go. It's akin to making someone mine coal with a rock instead of a machine.
Other programming languages than Erlang exist for a reason, they're not just fun toy languages for low IQ folks. There are tons of reasons why Erlang may not be a good fit for some project, and one of these other lesser languages would be a better fit, and he doesn't want to work with people who wouldn't even consider something like that.
1. either the person who asked this question doesn't understand that most of the utility in this ecosystem comes from the BEAM VM, the OTP, and the community around them, not just from the Erlang-the-programming-language.
2. or he/she employs the sunk cost fallacy here: I already invested time into learning Erlang and its Prolog-inspired syntax, so "screw Elixir". Disclaimer: I mistakenly avoided learning Elixir for this reason, simply because I already had lots of Erlang/OTP code already written over the years.
But that's not what they said. The statement was literally "to pivot away from erlang". Imagine you are working with, say, python (which I don't really like but it's a popular example) and were forced to switch to Visual Basic.
I was sympathizing until that final sentence. I'm not an Erlang programmer, but from what I know about both Erlang and Go, that seems like a terrible jump to make. Of course it depends on other circumstances in this hypothetical as well, but I probably would at least take this as an opportunity to reevaluate my current working situation as well.
This is 100% what is keeping you from getting hired. Folks who use BEAM don’t care if someone is using Erlang or Elixir or LFE or whatever… we care about the problems. This is why we are all on BEAM to begin with. Your immaturity shows you lack the experience to meaningfully understand this. You’re still obsessing with the superficial instead of the problem. Almost everywhere using BEAM is going to be dominated by senior+ engineers who just don’t want to put up with someone who is so assuredly lacking experience.
Your hubris is stunning by the way, to not see your attitude is the problem, I can say I would absolutely never want to work with you… and I’ve been writing for BEAM professionally for 7 years, software development for 15+ years.
It is factually untrue that Elixir's variables are mutable. What you're likely confused about is "variable shadowing" and in functional languages where values are immutable (and they are immutable in Elixir as well as Erlang) it's a very common pattern.
https://en.wikipedia.org/wiki/Variable_shadowing
Also, Elixir subsystems in Erlang are common, so projecting ones preferences onto an employer may earn less utility or more ire.
Best of luck =)
I don't get the hate for Erlang, either. It's a fun language with a community very willing to help folks out.
Stan@thesignallingcompany.com