aeravel Ventures

Elixir

Elixir and Phoenix, with the code in public

Two of the open-source projects we list are written in Elixir. We are the second contributor to Gringotts, a payment library for Elixir and Phoenix, and Avia is an e-commerce framework that uses it for payments. Both are public, so you can read the code before you hire us. If you are choosing the platform, extending a Phoenix application or training a team on it, this page covers what we take on.

supervisor one_for_one exit restart payment quote order queue

Why Elixir

When Elixir is the right call

The reason we reach for Elixir is narrow and practical. When a system has many things happening at once and cannot afford to drop any of them, the BEAM's process model and supervision trees make that routine. Payment flows, insurance quoting, order processing, anything with a queue and a deadline.

LiveView changed the arithmetic again. A team that would previously have staffed a separate front end can now put interactive screens in front of users from the same codebase, and for internal tools and operations consoles that is often the whole project.

We are equally willing to say no. Elixir is a poor answer for heavy numerical work, and a team of two with a deadline and no BEAM experience is usually better served by the stack they already know. We would rather lose that engagement than start it.

Core
Elixir, OTP, GenServer and supervision design
Web
Phoenix, LiveView, Channels
Data
Ecto, PostgreSQL, Oban
Operations
Releases, clustering, telemetry, load testing
Interop
Rust NIFs, Go and Node services, gRPC and REST

Engagements

Four kinds of Elixir engagement

You are deciding whether to build the next thing on Elixir.

Platform decision and first build

A short engagement to pressure-test the choice against your actual workload and team, then the first production service if the answer is yes. You get the reasoning written down either way, which is what you need when someone asks in a year why the system is in Elixir.

Your Phoenix application works but it has grown past its original design.

Phoenix and LiveView engineering

Feature work, context and boundary refactoring, LiveView migrations off older front ends, Ecto query and schema work, and the Oban and PostgreSQL tuning that usually comes with it. Small changes with tests, against a written plan.

Something is slow, or it falls over and nobody can say why.

Performance and reliability

Supervision and process design review, tracing and telemetry, database and query work, load testing, and the release and clustering setup underneath. We write down what we found and how we measured it, so the result survives us leaving.

Your team is learning Elixir from documentation and blog posts.

Training and code review

Hands-on training in Elixir, OTP and Phoenix, run against your own codebase. Often paired with a review retainer for the first few months, which is when the habits set.

Open source

The Elixir work that is public

Track record

Where Pankaj has run Elixir in production

Pankaj has run Elixir in production for several product teams, and still does at Cadmus. These are his roles at those companies, not Aeravel engagements.

  1. 2024 to now

    Lead product engineer, Cadmus

    Elixir, Phoenix, Ecto and Oban behind GraphQL and a React front end, for a platform that runs university assessments in Australia and the UK.

  2. 2024

    Senior software consultant, Up Learn

    An Elixir and Phoenix backend with a React frontend for an A-level learning platform used by students in the UK.

  3. 2022 to 2023

    Senior software consultant, Weatherforce

    A weather analysis portal in Phoenix LiveView, with Elixir jobs coordinating the data team's Jupyter and Dask clusters. It ran on AKS, with the infrastructure managed in Terraform.

  4. 2018 to 2022

    CTO, Aviahire

    An applicant tracking system built on Elixir, GraphQL and Phoenix LiveView, running on AWS.

Play

Elixir word game

Guess the five-letter Elixir term in six tries. A different word each day, and more games on the games page.

Working in Elixir, or thinking about it

Tell us the workload and the team you have. We will tell you whether it is the right call.

Talk to us about Elixir