True story of the developer exploring different programming languages| ❖ |> 🌢
Why we chose Elixir over Go, Rust and Node for a high-performance Bluesky DataPlane - and how a small Rust NIF and in-process fan-out made it the right fit.| bitcrowd blog Blog
On the lonely `status` column that quietly metastasised into a state machine, the boolean flags breeding in its shadow, and why a real finite automaton is not academic finery but the cheapest insurance you will ever decline to buy| ❖ |> 🌢
Recently, we presented our performance toolkit for atproto including a small Proof-of-Concept for a dataplane written in Elixir.| bitcrowd blog Blog
Atom Exhaustion Is Not a Footgun. It's One Third of Our CVEs.| erlef.org
A description of HRW/rendezvous hashing and the HRW elixir library.| jola.dev
Several rules from my experience which would make your cooperation with AI assistants a charm| ❖ |> 🌢
On treating mocks as protagonists of the testing narrative rather than disposable stand-ins hired to nod along| ❖ |> 🌢
Experiments with getting usable outputs out of local models on a standard Macbook| jola.dev
Machine learning capabilities with Elixir have expanded significantly in recent years. Sean Moriarity discusses some of those developments and compares Elixir's machine learning abilities with Python's.| DockYard
The outer part of a shadow is called the penumbra.| Shadowfacts
Take ownership of code you don't trust. Surveyor extracts a verifiable behavioral specification of a legacy system. Rewrite with certainty.| bitcrowd blog Blog
Elixir: Introduction| Emil Privér
A first-hand account of building the Cure programming language with AI agents as co-developers—what worked, what crashed spectacularly, and the distilled rules that emerged from the wreckage.| ❖ |> 🌢
My journey into optimising Elixir codebase of Ultravisor (my fork of Supabase's Supavisor). This story is not about a goal, but ~~friends~~ optimisations we met along the way.| hauleth.dev
Not only is Supabase the open-source Firebase alternative, it just might be safer too.| The Stack Canary
Adding support for real-valued intervals implementing the Enumerable Protocol in Elixir.| The Stack Canary
Moving on from Python Machine Learning might seem impossible. Let me break down why and how you can do it.| The Stack Canary
A walk through Cure v0.16.0 through v0.19.1. A Finitomata-inspired FSM rewrite, the dependent-types core finally behaving like it promised, a pattern engine that actually matches, and a stack of ergonomics that should have been there six versions ago.| ❖ |> 🌢
Explore SAFE, Erlang Solutions’ BEAM analysis tool, and how data-flow analysis improves security detection with fewer false positives.| Erlang Solutions
Just under a year ago I started building a BEAM language with dependent types and first-class FSMs—chose the wrong implementation language, wrote spaghetti, had an LLM tell me it was garbage, shipped something embarrassing, then spent months rethinking. Here is what I learned and where Cure stands today.| ❖ |> 🌢
Platform lock-in risks in regulated systems and how to avoid vendor dependency with scalable architecture. The post Avoiding Platform Lock-In in Regulated Environments appeared first on Erlang Solutions.| Erlang Solutions
Erik Schön explains why reliability in distributed systems is shaped by early architecture decisions, not just operational fixes. The post Reliability is a Product Decision appeared first on Erlang Solutions.| Erlang Solutions
Erik Schön explains how the always-on economy is raising the bar for fintech resilience and scalability. The post The Always-On Economy: Fintech as Critical Infrastructure appeared first on Erlang Solutions.| Erlang Solutions
There is a new open social ecosystem emerging around atproto.| bitcrowd blog Blog
Every programming language stores its AST in its own idiosyncratic format. Writing a code-analysis tool means rewriting it from scratch for each new language. MetaAST—a meta-model sitting one level above any concrete AST—solves this by providing a single universal representation. One analyser, all languages, linear instead of quadratic growth. This is the score that every instrument in the orchestra can read.| ❖ |> 🌢
Dropping Cloudflare and migrating to bunny.net, starting out with my blog.| jola.dev
An introduction to the Ash declarative framework by growing Yggdrasil, the World Tree of Norse mythology.| www.newresalhaider.com
A developer who knows only one programming paradigm resembles a carpenter whose entire toolbox contains a single hammer. Naturally, a hammer will drive a nail with admirable precision. Or a screw, if sufficient enthusiasm is applied. But try to saw or plane a board with that hammer, and it becomes immediately clear—assuming you’ve encountered a saw or a plane at least once in your life—that the instrument has been chosen poorly. So it is with paradigms: knowledge of nothing but imperati...| ❖ |> 🌢
Blog series by software engineer Daniel Andrews who shares about our product development team's early experience building with generative AI, including RAG| Revelry
In a previous blog post, we looked at the process of migrating 600k users to a new billing service for Steady Media. This was the final step of an internal project called “Charger”. Its aim was to replace the off-the-shelf payment platform they had started with, Chargebee, which had become a roadblock. In this post, we will reveal the behind-the-scenes insights into the process that made that final step a success.| bitcrowd blog Blog
In August 2025, we helped our friends at Steady to migrate their 600,000+ users to their own in-house billing system. This was the final step of an internal project called “Charger”. Its aim was to replace the off-the-shelf payment platform they had started with, Chargebee, which had become a roadblock. The work on Charger began already in 2021 in workshops with the Steady team. Together with them, we designed, planned and finally built the internal product that would take over for years ...| bitcrowd blog Blog
Setting up a website using Elixir and Phoenix, leaning on NimblePublisher for the blog posts.| jola.dev
Three years ago I wrote a fairly coherent piece on four key developer skills, but a good deal of water has flowed under the bridge since then, and while the theses laid out there remain sound, they need a slight adjustment in light of the boon that has descended upon us in the form of large language models.| ❖ |> 🌢
Part four of four key developer skills.| ❖ |> 🌢
Part three of four key developer skills.| ❖ |> 🌢
Part two of four key developer skills.| ❖ |> 🌢
Part one of four key developer skills.| ❖ |> 🌢
Four skills that actually matter in 2023, or: a blanket glorification of Elixir masquerading as a balanced opinion piece.| rocket-science.ru
How we are periodically dumping metrics about our most demanding BEAM processes into an easy-to-query ClickHouse table.| Andrea Leopardi
Discover how I upgraded my Phoenix LiveView app using Tidewave and Claude Code, overcoming challenges and optimizing the process.| Petros Amoiridis
A first-principles guide to process-based concurrency — what makes BEAM different, how OTP encodes resilience, and why everyone keeps reinventing it.| Variant Systems Blog
We open-sourced PhoenixPress — sitemaps, robots.txt, and RSS feeds for Phoenix, generated at compile time with zero runtime overhead.| Variant Systems Blog
How we built a full-featured calendar in LiveView — data model, recurring appointments, multi-user views, drag-and-drop, and performance.| Variant Systems Blog
How a team that was new to Elixir over-delivered a big project in just three months.| The Great Code Adventure
In this post, I break down my Advent of Code Day 1 solution and dive into how you can use recursion, pattern matching and custom guard clauses to implement even complex logic and control flow in an easy-to-reason about way that also avoids common time complexity pitfalls.| The Great Code Adventure
Thanks to lots of Googling and some help from a friend, I learned you can test that a GenServer received a message with the help of Erlang tracing.| The Great Code Adventure
--- This post was originally published on the Flatiron Labs blog. Check it out here for more awesome content by The Flatiron School's technology team. Elixir and The Beam: How Concurrency Really Works Elixir has become famous as the shiny new “concurrent” programming language, with more and| The Great Code Adventure
Building an api client mock and learning to love mocks-as-nouns This post was originally published on the Flatiron Labs blog, The Flatiron School Technology Team's blog. Check out more awesome Flatiron Labs posts here. Why We Need Mox In a recent post, we talked about the age-old question:| The Great Code Adventure
It's here! Phoenix Live View leverages server-rendered HTML and Phoenix's native WebSocket tooling so you can build fancy real-time features without all that complicated JavaScript. If you're sick to death of writing JS (I had a bad day with Redux, don't ask)| The Great Code Adventure
This post was originally published on the Elixir School blog [https://elixirschool.com/blog]. Elixir School is an open source Elixir curriculum and we're looking for contributors! You can write a short TIL blog post, a longer blog post, add a lesson, help with translation and more. Check out our| The Great Code Adventure
OpenSSL sucks. The BoringSSL and AWS-LC forks are Googled and Amazoned to death; they don't care about anyone but their own use cases. I can't remember ever having a good experience with software using GnuTLS. LibreSSL is incomplete... FOREWARD This post is about the experience of taking a leap of …| Makefile.feld
We're excited to announce the open-source release of Delta Query, a library that allows Elixir developers to query Delta Sharing sources easily.| Revelry
Creating a server-side drawing API for HTML5 Canvas - using Elixir to generate optimized JavaScript commands for a circular PONG game| lucassifoni.info
Software engineer Daniel Andrews shares about our second experimental project with AI and LLMs: RevBot, a Retrieval Augmented Generation – RAG – prototype| Revelry
Discover the real cause behind a common Phoenix.Socket check_origin error and the easy fix.| Revelry
We’ve been working with MCP servers for a while, and this use case was a perfect opportunity to build out another one.| hashrocket.com
MCP is the next step for empowering AI. See how we built an MCP server in Elixir and what MCP can do compared to RAG.| Revelry
Inline anonymous functions + result-pipeline helpers = flatter, top-down reading flow| katafrakt’s garden
5 key Elixir concepts every JavaScript developer should know to boost code clarity, stability, and performance.| Revelry
https://github.com/poeticoding/yolo_elixir/releases/tag/0.2.0 In the four months since my daughter was born, I’ve been balancing baby bottles by night and code commits by day. Finally managed to ship this release, sleep-deprived, but very proud! This isn’t just a version bump, it’s a major release, introducing three key enhancements: This release brings also other things like a fully […]| Poeticoding
The itch to write a property test for the musical scale generator we built last time led to explore how to generate all possible scales.| Pete Corey
In my journey to rebuild Glorious Voice Leader in Elixir, I need a way to generate correctly spelled musical scales. Here’s how I did it.| Pete Corey
Elixir HTTP caching libraries have been updated to version 0.4.0 with support for the “stale” cache control directives. These two directives are additional directives added by RFC5861 - HTTP Cache-Control Extensions for Stale Content. They allow serving stale content in particular cases. Content is considered stale when its caching time limit has expired. For instance, using the max-age response header: cache-control: max-age=60 this page will be considered stale in 1 minute and no longer...| Tangui's blog
One of my goals for the year is to learn a new programming language. It’s been a while since I learned a new language, and I feel like a lot of the languages I know well (Go, Python, C++) are similar to each other, so I want to try getting out of my comfort zone a bit with a language that feels weird to me. Requirements Here’s what I’m looking for:| mtlynch.io
Integrating the Model Context Protocol into a Phoenix Chat application using Hermes MCP to give your private LLM server a brain.| Revelry
A brief description of how I made testing a charm with stream data generators supplied with my estructura library| rocket-science.ru
DIY Message Broker| ❖ |> 🌢
One of my friends pointed me to the solution of kinda popular nowadays interview task. It is “How would you design an URL shortener service like TinyURL?”| ❖ |> 🌢
Probably, the most irritating expierence in immutable languages for those coming from the OOP, would be updating the deeply nested structures. I have answered a ton of questions on StackOverflow related to how to deal with GraphQL-like structures.| ❖ |> 🌢
Last several months I’ve been lazily working on markdown parser. My goal was not to compete with earmark or any other markdown parser already existing in the wild. Even more, from the day one I knew I am not going to make it fully compatible with Commonmark. What I actually was after would be to produce a blazingly fast, customizable markup parser.| ❖ |> 🌢
Elixir 1.11 brought to us (amongst other very exciting features) is_struct/2 guard. It, by the way, might have been used as an example of more straightforward not backward compatible alternative in my yesterday’s writing, but I avoided it for a reason that will become clear below.| ❖ |> 🌢
Starting with Elixir 1.11 / OTP 23, one can easily define a guard to check the argument is a particular struct. That might be handy in rare cases when the single function clause is ready to accept a mixed argument, and pattern matching directly on the argument would not work.| ❖ |> 🌢
All I am going to say is biased and opinionated. Everyone is free to shut up and disagree.| ❖ |> 🌢
12 Jul 2018 the project :telemetry got its first initial commit. It was pushed by Arkadiusz Gil but the README states“Telemetry is copyright (c) 2018 Chris McCord and Erlang Solutions” and the last commit ATM was made by José Valim.| ❖ |> 🌢
There was a question published yesterday on Stack Overflow, asking| ❖ |> 🌢
Almost each successful business application sooner or later enters the phase when the horizontal scaling is needed. In many cases one might simply launch the new instance and decrease the average load. In most cumbersome cases we must ensure different instances know about each other and distribute the workload gently.| ❖ |> 🌢
Elixir provides MapSet module to handle sets—lists of unique elements (shall I say “arrays” instead of lists here?). They are very handy under many circumstances. During my work on the minor update in Exvalibur, I changed the list I mistakenly used before to be MapSet. And there was a pitfall. Everywhere is the code I used different function clauses for empty list. But MapSet is a module. That said, this code| ❖ |> 🌢
The detailed how-to on dealing with strings having accents nowadays| rocket-science.ru
Learn how to turn your old gaming laptop into a private LLM server using Linux, LM Studio, and Phoenix LiveView for local AI access.| Revelry
In this blog, we have a ongoing series of posts [about the uses and the technicalities of RAG](https://bitcrowd.dev/tags/rag), especially in the context of coding and Elixir. However, we discovered that many readers did not find the time to setup their own RAG system. To make this more accessible, we launched [exmeralda.chat](https://exmeralda.chat). It's a chatbot for Hex packages that we host for the community.| bitcrowd blog Blog
Discover the benefits of Elixir for business. Learn how Elixir enables scalable, efficient, and reliable digital products.| Erlang Solutions
I published my new book: A Language a Day, which is a collection of brief overviews to 21 programming languages.| Andrew Shitov
Elixir vs Haskell: compare their features, like concurrency, performance, scalability, and maintainability to find your best fit.| Erlang Solutions
When talking about erlang/elixir, people usually come up with three main associations: lightweight processes, an actor model, and fault tolerance. Erlang made it possible to run hundreds of thousands (with fine—tuning of a virtual machine, millions) of “processes” (what were later called greentreads, and even later goroutines)—almost forty years ago. Joe Armstrong, in his dissertation, half-jokingly characterized language through the catachresis of everything is a process. With the ac...| rocket-science.ru
Single page applications Single page applications (SPA) are becoming more and more popular, often replacing the more traditional server rendered websites that are common in Rails or PHP. You have options such as Angular, Ember, React, and there are…| Leigh Halliday's RSS Feed
Intro I recently wrote an article on Recursion in Ruby , and this is meant to be its Elixir counterpart. It will provide a way to compare solving the same problems in both languages and a chance to talk about some of their differences. Heads & Tails…| Leigh Halliday's RSS Feed
Intro... learning Elixir This is my first post in the new Elixir category I've set up on my site. I'm new to Elixir and functional programming in general, aside from a Scala course I've done on Coursera. Ruby is the language I'm currently most…| Leigh Halliday's RSS Feed
I've been experimenting with Kamal for deploying an Elixir application. The application was previously deployed on Fly.io and relies on the Erlang VM's clustering capabilities, so I had to get this working on the Hetzner deployment I'd spun up using Kamal. It took me a bit of effort to| Samrat Man Singh
One year ago I released the http_cache Erlang library along with 2 Elixir libraries (plug_http_cache and tesla_http_cache) that make use of it. When I started writing these libs, I thought it would take a few weeks of work to have them completed. HTTP caching is harder than I though, and it took way longer. Why, then, bothering writing them when other HTTP caching systems already exist? In this blog post, I intend to explain my motivation and show what features they support.| Tangui's blog
In Part 1: The road to HTTP-caching Liveviews, we’ve succeeded in caching the initial rendering of Liveviews. For this we had to: disable CSRF token check, using a modified version of Phoenix disable sending the CSRF token when establishing the websocket connection configure a Plug that sets the cache-control header and eventually configure PlugHTTPCache So far we succeeded in caching Liveviews that render public content. Caching private content with plug_http_cache or a CDN makes little se...| Tangui's blog
This post is adapted from my lightning talk during ElixirConf 2024.| Bryce’s Blog
Logging is essential to any production system, but it’s also terribly easy to make your logs so noisy they become worthless. That’s why I’m a big fan of carefully specifying the criticality level of everything I log. Not only does it allow us to easily search the logs for potential problems, it allows us to […]| Christopher J. McClellan
Elixir v1.17 released: set-theoretic data types, calendar durations, and Erlang/OTP 27 support| The Elixir programming language
Don't spend 6 months building your app just to find out nobody wants it. Do this instead.| The Stack Canary
Finitomata ships with a testing framework| rocket-science.ru
Discover the power of naming your programming daemons and how to effectively label your Elixir processes for clearer code.| Erlang Solutions
From learning, to prototyping, to production - Livebook can really do it all.| The Stack Canary
XGBoost is one of the most popular Machine Learning tools. Here's how to make beautiful plots for it with Elixir.| The Stack Canary