for elixir books, i strongly recommend sasa juric’s elixir in action—it’s the best explanation of processes and genservers i’ve found.
Elixir and Phoenix are productive as hell but they also need deliberate approach and not everything should be done quickly. Requiring me to churn out 3-5 features a week in the first 6 months is the best way for me to hand my resignation a mere two weeks after starting.
Sorry, you might not have had this in mind, I am just reacting to your text.
But rest assured, ElixirForum has quite a few people who would grab an Elixir job if given the opportunity, some for as low as $2500 a month even. And most people frequenting the forum mostly check its own Jobs section. So if you really want to widen your options, definitely make a job ad post there.
What it has to do with Elixir is that Elixir does not scale well with a number of programmers, and many startups go through periods of explosive growth of personnel. With Elixir that very rarely works well, 99% of the time IMO it does not. Adding more people does not increase productivity, it hurts it even.
How do other languages, like Python, scale better to more devs, besides more devs available? All that comes to mind immediately is modules in Elixir being globally available, but I’m genuinely curios about your experiences.
Thirdly, Elixir devs are on average quite senior in general (as they are usually refugees from other stacks) which lends itself to one-man armies very well in my almost 8 years of experience working with Elixir.
Does stepping on each other's toes happen, of course! but no worse than typescript, java, etc.
I don't buy this argument.
There is also the fact that the companies I chose to work with didn't want a lot of Elixir devs and we truly made miracles happen with teams of 2 to 8 people.
We scaled an org with both Ruby and Elixir (later, 1 of the 2 blessed languages) and there was no tangible difference in that way.
You could also scale in other ways like microservice. Elixir plays great in that world, as pretty much every language does.
Regarding one man armies. Usual way I've seen to scale is to find those one man armies and put less expensive Jr + mid engineers on their team and have them work together. I don't think that's an Elixir thing though.
I'm not trying to sell Elixir here. I think it has benefits in smaller org size that mellow out and equalize as a company grows. Also, startups should always work in whatever language is most comfortable to founding team.
RE: microservices, yep, that's one of the ways to scale Elixir teams to more people indeed.
RE: one-man armies, agreed.
> I'm not trying to sell Elixir here. I think it has benefits in smaller org size that mellow out and equalize as a company grows.
No worries, I am sold for 8 years now. ;)
And yes, the benefits kind of plateau from one dev count and up I found. That was kind of the core of my comment, too.
> Also, startups should always work in whatever language is most comfortable to founding team.
Oh, absolutely. I love Elixir a lot but won't shill for it if I find myself in a situation where it would be a bad choice. Plus in startups development speed is probably the biggest asset of the programmers so I am not judging. (Though I don't want to work for startups anymore.)
> Requiring me to churn out 3-5 features a week in the first 6 months is the best way for me to hand my resignation a mere two weeks after starting.
This was the exact issue we encountered after I had switched a startup's backend from Node to Elixir. I was able to churn out features pretty quickly (and the switch itself turned the core batch job underlying the product from a multi-hour runtime to less than a minute), but the bus factor was pretty much 1 and we were never able to really increase that before the company ended up running out of runway and folding.
This was almost a decade ago, though, so things have hopefully improved somewhat.
Lovely language whose community and vm taught me an absolute ton that still resonates with me today.
But for a bunch of “cats” that need to be herded, engineers tend to be fairly packish in some regards so looks like it’s Go, Java, Typescript, and TypeScript/HTML/CSS(in JS)/React for the foreseeable future
But it's good to be reminded I guess when new shiny things come across your sceen
Another good thing about Elixir is that the odds of you actually needing 100 devs coding in it are close to zero. I've been in financial EU startups that moved tens of millions a month (they were not huge) with the grand total of 4 devs. The only problem was clearing up customer requirements (i.e. our product people dropped the ball and left us doing most of their work).
And expensive? Yeah but I wouldn't be against that if I was an informed business owner. Most Elixir devs are refugees from other tech stacks and are quite senior. Good talent should be compensated well.
Having worked at multiple unicorn+ SaaS products, the product feature demands are significant.
Yes if you have one sole feature that you can pour all your engineering resources into like whatsapp delivering messages then it makes sense you might get away with 2 Elixir devs.
If you are working at a unicorn who just raised $250m in founding and now has to deliver 100 new features this year... well the elegance of the language won't help as much as you think.
I'll take quality of life over money any day, but I realize I'm in an extremely small minority.
I don't think devs and talents are too hard to find, if you are willing to look and be flexible.
you just have to post where they are. i strongly recommend the newsletters, the jobs channel on the elixir slack, and elixirforums. all great resources.
You'll never need 100 devs to work on a single elixir project. I as a solo dev built out the backend for my startup to profitable. We keep discussing bringing on a new developer during the occasional crunch but its been 5 years of operation and we haven't really needed it aside from increasing the bus factor. features go out fast enough as is. elixir is very productive.
based on my experience, if you need more than 5 developers, you should separate out features to independent systems and have them communicate with each other over established interfaces. Then you can use the language specialized to the task at hand. Either way, 100 engineers on a single codebase is not going to be efficient no matter what language you are working in.
That said, this article is about startup. the name of the game is to crank out features and aquire users. elixir is performant enough that you're not blowing your budget on cloud infrastructure and high level enough that you can build out and maintain your mvp with a skeleton crew.
If you run into a situation where you suddenly need to scale to 100 engineers, thats a great problem. it means you have revenue.
Having said that, a single team of seasoned Elixir devs can achieve more/better things than 100 average devs using the usual SPA/API/microservices-JS hell with all that modern unneccessary complexity. Saying this as a former DevOps guy babysitting the mess of multiple of these teams before.
We've had non senior people onboarded a few months and they are doing well with Elixir at the moment, fwiw!
i’d love to say you were correct, and if it was a tech acquisition you might be right. in our case they were acquiring our customers and goodwill primarily. the app was sunset a year later.
What would you have used instead?
while thats usually true, it can also be a result of rapid customer feedback. what customers want might not be apparent till you put it in front of them. bad managers are one thing but if you're a startup, its more about responding to customer needs faster than the incumbent can.
you’re a solo developer rewriting the fundamental application your company sells and depends on for revenue? yeah, maybe not so much. (actually there’s no maybe about it. don’t do this.)
It is the Netflix playbook.
Yeah, rewrites are bad, especially as a startup.
Not that gods don’t make mistakes. But I kind of see where they’re coming from.
Are we talking about parenthesis here again?
It's easy to understand a well written Lisp codebase once you are familiar with its concepts. What you can't do is try to read it when all your prior programing exposure is from, say, the Algol language tree.
Yes: https://aplaceofmind.notion.site/It-s-Lambdas-All-the-Way-Do...
I dont know… we cant expect each article to expand on the previous article you read. i dont think article writers should scrap their article if it doesnt contribute some novel benefit. I think one additional article without new points simply emphasizes those existing points.
I mean, I get your fatigue. I just dont think there is any fault here.
Elixir is extremely overhyped, not because it’s not great but because most of the discourse is about how much better it is than other languages.
With Python, Rust, Go, and JavaScript I can find a ton of interesting projects and tools; tons and tons of examples of people doing interesting things, easily outweighing the language hype.
Elixir has a handful of core tools, tons of hype posting, and a smattering of introductory blog posts to those tools.
The community really has the appearance of lacking depth. (Granted I think partly that’s because the depth exists inside companies that don’t really talk about it)
[1] https://www.youtube.com/watch?v=HP86Svk4hzI
[2] https://dockyard.com/blog/2024/02/06/5-benefts-amplified-saw...
And the OP presentation about ML is spot on in that regard :-)
it’s not that i think they’re wrong, at all. it’s just that they add nothing new to the conversation, they’re superficial, and frequently don’t go on to give a reader any idea of how the decision worked out.
here, i’ll start: i rewrote my startups platform in elixir about six years ago and it was a terrible business decision. not because elixir was bad —to the contrary, it was fantastic —but because the year and a half i spent reproducing functionality could have been spent adding new features that would have translated to new customers, and that would have translated to an additional million dollars when we eventually sold our bootstrapped business (obviously if i’m quibbling about a million bucks im not talking about a venture backed business here.)
in terms of scratching my intellectual itch it was great, but i can’t defend it from a business perspective and whenever somebody brings up the notion of rewriting a core platform i tell this story.
now can someone please write some elixir articles about cool stuff they did with it and get those on the front page?