Recently, bitcrowd helped several companies implement the redesign of their main application.
Redesigning large, sometimes semi-well aged Phoenix apps can be a daunting task, or plain sailing, depending on the strategies you employ. We've created a write-up of our learnings and best practices.
Wondering how to best tackle your app redesign? Let's talk!
With supply chain attacks hitting package registries across other ecosystems, it's good to see Hex.pm getting ahead of it. Eric Meadows and Jonatan Männchen share the results of the first comprehensive external security audit on Hex.
Aaron Votre shares how they built an agent that turns a Slack message into a PR. Each run is an isolated Elixir process on its own ephemeral Fly.io machine, coordinated through a distributed Erlang cluster.
João Paulo Abreu walks through the basics of error handling in Elixir. He covers the {:ok, value} / {:error, reason} tuple convention, handling results with case and pattern matching, chaining operations with with, and when to reach for the bang variants.
How do you find and fix the slow Ecto queries dragging down a Phoenix app? Samuel Mullen shows how to use AppSignal to spot the worst offenders, then walks through fixing them with indexes, pagination, and addressing N+1 issues.
Vipul Bhardwaj introduces PhoenixPress, an open-source library that generates your Phoenix app's sitemap.xml, robots.txt, and RSS feed at compile time.
What actually happens between a packet arriving at the socket and ending up in your GenServer state? Yatender Singh traces the full journey through the BEAM, covering I/O polling, memory copying semantics, and refc binaries.
How does a tool like Sequin stream every insert, update, and delete from Postgres to systems like Kafka or SQS? Anthony Accomazzo explores the Postgres logical replication protocol and walks through the GenStage pipeline Sequin uses to power it.
Supabase Supavisor, written in Elixir, handles thousands of database clients running millions of queries across different SDKs. We’re looking for a Software Engineer to join the Supavisor team and help tackle the next round of challenges in running a globally distributed connection pooling cluster.