The modern internet requires software that is ready to scale at a moment's notice. We use Elixir to write applications that are ready to scale when you need them to.
Our team can help you scale an existing application, or build a new application to be scalable from the ground up.
Send your CV
We blog because we care. Knowledge wants to be free!
If you have seen Guardians of the Galaxy, you might remember the scenes where Chris Pratt has his Walkman on, shutting him off from the surrounding chaos. This is what Walkman does, for your test suite. A new testing library Elixir already has some good t
I’ve been to a couple of conferences already this year, including Lambda Days 2019, where I saw a whole bunch of good talks. Two talks in particular stick out in my mind: Diving into Merkle Trees, by Pedro Tavares, and
Horde 0.5.0 has just been released, and there are a bunch of changes, so let’s take a look at some of the highlights! If you are new to Horde, read Introducing Horde — a distributed Supervisor in Elixir
If you’ve been around in the Elixir / Erlang community long enough, you’ll begin to hear the same wisdom being passed around time after time. Let it crash; don’t use GenServers to separate business logic; and the topic of this blog post: Every process should be supervised.
This is a problem that many of us are familiar with. We would like to deploy our programs, and deploying a new version requires turning off the old version (unless you are using hot code swapping, but that’s another kettle of fish). So you send a SIGTERM to your server
As powerful as Elixir/Erlang’s OTP is, it’s also easy to nuke your performance by accidentally introducing a bottleneck into the system. Here are 2 ways you can turn a Supervisor into a bottleneck and how to fix them. Doing time consuming work in init/1