Hacker News new | ask | show | jobs
by as-j 2441 days ago
I'm in the process of replacing an Erlang service. Erlang is incredibly well suited for the task, and it's a terrible choice for us.

Initial development was done, system worked and ran for years. Team left, turned over and then 5 years later no erlang developers were left on staff.

The service is business critical, and you don't need 1 developer, you need a team. 3 would provide some basic backup, but you need 5 to fill out the 24/7 on-call rotation. (yes people need vacations, weekends off, etc)

Sadly it's not the entire stack, far from it, it's one mission critical service that's part of a very large system. So the excitement they get from growing, enhancing and scaling the system is already a bit restricted. Problem is, trying to hire is SF is already hard, and now we just selected the pool of engineers to be a small subset of those.

So now the cost of 3-5 engineers, the work to hire them, manager and deal with turn over. Wow.

Sadly (not sadly) we replaced the service with an AWS offering for $1000/mo. World changed in the 9 years since the Erlang product was first written.

It's turned me off niche languages.

3 comments

Sorry, am I reading this right? You replaced a service that required a team of five Erlang developers with an AWS offering for $1000/mo? Why wouldn't you do that regardless of the language involved?
Sorry for the late reply. It actually needed little development, 1 person would be just fine. But it was also scaling, and bugs crop up. Unfortunately bugs crop up some days at 9pm on Friday, or 2am on Sunday. Since it's business critical this need attention immediately, stop/restart isn't always good enough. So this means you need someone who can supply emergency patches on call all the time. (trust me turn if off, and turn it on again doesn't always work, yay persistence, yay retries)

This can't be 1 person anymore, what if they person takes a vacation. So that's 2 people. Perhaps the 2nd person can be much less capable that the first, they just need to hold the system together for how ever long it takes the lead dev to come back from his 2 week hiking trip in the amazon....yeah not good enough. So then you end up saying we actually need proper on call, so now you're hiring a team.

What if it was another language? Let's assume it's a core language of the organization. Then you don't need a team, but capable Sr/Staff Engineers who can jump in during emergencies. Might not be the perfect fix, but then you have a series of people who can duck tape it together until the person responsible is available.

Using Erlang tied our hands, and made a decision to throw a project business requirement.

It seems strange that you were running an erlang service that requires 5 developers with zero developers.

Also BEAM developers are not hard to find in the Bay. it's hardly a niche language, plenty of Cisco people around at least.

Did you not consider Elixir? All the benifits of Erlang but better tooling. Elixir these days is anything but niche.