News for hackers. Stuff that matters.
Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Tuesday December 27, 2022 @06:58AM (#34147911)
We are 5 days from the new year, so in 2023, a data engineer ought to take a serious look at Elixir.

I manage Elixir systems for data engineering related work, so I can attest to its use in this domain within a production environment. I also have used Rust for comparable data-engineering related systems.

Elixir is a phenomenal language for data engineering. I've written message processing pipelines in Rust and didn't get anywhere near the level of design considerations that Broadway / Genstage have. Some day, there may be robust open source offerings in Rust as there are in Elixir, but the ecosystem hasn't reached this state, yet. Rust asyncio is also in a minimum-viable-product condition, lacking the sweet structured concurrency that Erlang-OTP solved long ago and Elixir benefits by. Data pipeline processing in Elixir, utilizing all available cores exposed to the runtime, is straightforward and manageable. Telemetry patterns have been standardized across Elixir ecosystem. There are background worker processing libraries like Oban that help with audit trail/transparency. Smart, helpful developer communities.

Elixir is not going to beat Rust on performance. CPU-bound work is going to take orders of magnitude longer to complete with Elixir than Rust. You could extend Elixir with Rust in CPU-intensive situations using what is known as NIFs but you'll need to become familiar with the tradeoffs associated with using Rust NIFs.

Writing in Rust involves waiting for compilation. When a developer waits for compilation, they switch to something else and lose focus. You can use partial compilation for local development, and that speed things up. You also need to have a very modern workstation for development, preferably an M1 laptop or 16-core Ryzen, with at least 32GB ram and SSD. Elixir, however, has quick compile times as it doesn't do anywhere near the level of work that Rust compiler does. There is a tradeoff for that, though. Elixir is a dynamic language and consequently has all the problems that dynamic languages do that are automatically solved by a strongly-typed compiled language such as Rust. You also discover problems at runtime in Elixir that often would be caught by the Rust compiler.

Re:Ask HN: Upskilling as a Data Engineer by swyx on Tuesday December 27, 2022 @07:10AM (#34147964)
i feel like any discussion of Elixir, a perennial HN favorite, should also come with a disclaimer that it has less users than Haskell (per https://survey.stackoverflow.co/2022/#section-most-popular-t...)

i'll be the first to ack that popularity doesnt matter if you personally feel productive in it; but it does matter when talking about jobs and leveraging an ecosystem (which i dont know elixir's ecosystem so i cant comment on, i had not heard of Broadway / Genstage before this comment). but career-wise, i do observe that developers going after a theoretically better language routinely sacrifice a degree of industry relevance they never get back since they voluntarily enter an extremely niche subculture that for whatever reason never catches on. seen this time and time and time again and i think HN disregards this for the love of the new shiny without a balanced analysis of the career risk/reward

Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Tuesday December 27, 2022 @07:33AM (#34148092)
Your warning about niche technology is fair, but a Stack Overflow survey is NOT representative of what's going on in the real world. Better, more objective approximations can be gained by reviewing download stats of centralized package managers. Elixir uses hex. Rust uses crates.io. Python uses pypi. Node uses npm. Review download stats and then decide how popular libraries/languages are.

It takes time for technologies to catch on. Elixir and Rust both are relative drops in the bucket in respects to industry adoption, making it difficult for practitioners with the languages to continue using them beyond their current employment. Web development often acts as the foot-in-the-door, and Elixir's Phoenix is doing superbly well in this domain. However, Elixir's got an even more impressive position for data engineering related work.

Re:Ask HN: Upskilling as a Data Engineer by AlchemistCamp on Tuesday December 27, 2022 @08:58AM (#34148665)
Consider that HN is tightly coupled to YC and that over half of the total market cap of YC companies is from those that started with Ruby on the back-end despite Ruby never having the number of users and “jobs” as PHP, Java, .Net, Python, C/C++, etc.

Were all those devs picking Ruby instead of Java in 2010 ruining their careers? I doubt it. Were the devs picking Java instead of Ruby for their startups? Very possibly, many of them.

Once your business comes into contact with the market, tool productivity matters more than popularity. Popularity can affect productivity, but at the end of the day, it’s the productivity that matters.

See: https://twitter.com/logicmason/status/1371255029412233218

Re:Ask HN: Upskilling as a Data Engineer by tester756 on Tuesday December 27, 2022 @09:06AM (#34148730)
>Were all those devs picking Ruby instead of Java in 2010 ruining their careers? I doubt it. Were the devs picking Java instead of Ruby for their startups? Very possibly, many of them.

but is working for yc startups some good thing? like desired?

Re:Ask HN: Upskilling as a Data Engineer by AlchemistCamp on Tuesday December 27, 2022 @01:36PM (#34151993)
Building a startup that ends up with a very high valuation, relative to its peer cohort, is a good thing. It's desired.

I was speaking more from a founder-perspective, but being an early employee with equity in a startup that becomes very valuable is pretty good, too.

Re:Ask HN: Upskilling as a Data Engineer by thewhitetulip on Tuesday December 27, 2022 @07:10AM (#34147963)
Have you seen anyone use Elixir? I'm hearing the language for the first time!
Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Tuesday December 27, 2022 @07:18AM (#34148014)
Yes. My current employer is using Elixir for data engineering related work.
Re:Ask HN: Upskilling as a Data Engineer by akgerber on Tuesday December 27, 2022 @09:37AM (#34149007)
Re:Ask HN: Upskilling as a Data Engineer by assuringllama on Tuesday December 27, 2022 @07:51AM (#34148182)
Hi there, I am quite a heavy user of Elixir and Phoenix (mainly for Web application development), and starting to look into data engineering.

I know about the book Concurrent Data Processing in Elixir when I am trying to pick up Broadway and GenStage. Do you have any other recommendations?

Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Tuesday December 27, 2022 @09:20AM (#34148844)
Most of my learning was by studying existing source and building. Elixir doesn't demand book reading in order to become proficient with it. Just dive in and build something. You'll learn as you go.
Re:Ask HN: Upskilling as a Data Engineer by shubb on Tuesday December 27, 2022 @08:33AM (#34148425)
As this is about data engineering, this book could be interesting https://pragprog.com/titles/thgraphs/exploring-graphs-with-e...
Re:Ask HN: Upskilling as a Data Engineer by cfeduke on Tuesday December 27, 2022 @09:40AM (#34149045)
This is really interesting. I've spent eight years in the JVM ecosystem (mostly Scala) augmented by Python for data engineering but I really dig Elixir. I had just assumed that Elixir was still too young to have spawned a data engineering ecosystem. Now I have something to look into!
Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Tuesday December 27, 2022 @10:24AM (#34149417)
if you describe some of the existing systems you'd like to see ported, explain what they do in abstract terms and maybe someone here can present ways to solve them with Elixir
Re:Ask HN: Upskilling as a Data Engineer by notpublic on Tuesday December 27, 2022 @10:31AM (#34149479)
Here is a good a talk from ElixirConf 22

https://www.youtube.com/watch?v=Y2Nr4dNu6hI

"Chris Grainger (Amplified) delivers the Friday Keynote at ElixirConf US 2022.

We switched our machine learning research, production inference, and ETL pipelines to Elixir. This is the story of how we made that decision and how it's going...."

Re:Ask HN: Upskilling as a Data Engineer by agent281 on Tuesday December 27, 2022 @11:26AM (#34150065)
Elixir is such a delight, but are there many data engineering jobs for Elixir? Could you describe how you came into your current position?
Re:Ask HN: Upskilling as a Data Engineer by Dowwie on Wednesday December 28, 2022 @05:21AM (#34159461)
It was luck. I was the beneficiary of greenfield projects built with Elixir that proved their worth to the organization before I started working with them. Onboarding with Elixir as a senior engineer was fun and interesting, most recently coming from prior years of full time experience working with Rust.

There aren't many data engineering related jobs in either Elixir or Rust, yet, but as someone with depth in both I can use either and lead a team to use them successfully in short time.

Re:Ask HN: Upskilling as a Data Engineer by agent281 on Wednesday December 28, 2022 @12:01PM (#34163024)
That's awesome! Are you comfortable stating your employer? It's always neat to find out who is working differently and what industries they are in. If not that's totally cool. The internet is a weird place and I'm a total stranger. (Not to mention the whole this is publicly available forum.)

Actually, to even the playing field, a bald guy in a blue shirt just looked at your LinkedIn profile. ;)