Articles

Building Software with Broken Windows

9 days ago · 9 min read

Building software is hard, there's no doubt about it. There are ways we can make it easier to write code in teams with large codebases.

Lonestar ElixirConf 2019 Highlights

4 Mar 19 · 6 min read

Last weekend was Lonestar ElixirConf 2019. In this article I recap some of my personal highlights and favourite presentations from the conference.

A Comparison of Elixir Supervision Trees and React Component Trees

6 Feb 19 · 3 min read

Elixir Supervision Trees and React Component Trees - both trees, but do the similarities end there? In this article I compare the pair.

Using a GenServer to handle asynchronous and concurrent tasks

1 Feb 19 · 4 min read

Inter-process communication can be tricky to get your head around. This article discusses an example of how it can be used to solve a real problem.

Best practices for integrating with third-party libraries in Elixir

19 Dec 18 · 5 min read

In this article, I will discuss a typical scenario of integrating with a third-party API and detail a potential approach you could use in your Elixir application.

You might not need a GenServer

20 Nov 18 · 3 min read

It can be confusing sometimes, to know when to use a GenServer. There are a couple of modules, including Task and Agent that may fit your purpose better.

Offset and Cursor Pagination explained

30 Oct 18 · 2 min read

Pagination is a common concept in software development. Understanding the difference between offset and cursor pagination is critical to building or working with APIs.

Using Protocols to decouple implementation details

26 Sep 18 · 3 min read

Protocols are a way to implement polymorphism in Elixir. There are many use-cases for it, but I'll go through a typical example of interacting with an external API that needs data in a specific structure.

Add Docker to Elixir/Phoenix projects in one command

23 Aug 18 · 2 min read

A simple way to add basic docker files to your new or existing Docker projects.

Working with Tasks

26 Jul 18 · 2 min read

Working with Tasks means understanding how to send and receive messages in Elixir. To familiarise myself with this concept, I create a simple (naive) Job module.

Understanding concurrency in Elixir

14 Jul 18 · 4 min read

Concurrency is one of the major drawcards for pulling people to the Elixir language. In this article I explain how to use concurrency at it's lowest level - with Processes.

Composing Ecto Queries

6 Jul 18 · 3 min read

Ecto makes composing queries possible through query bindings. Let's take a look at how to compose queries through functions.

Streaming large datasets in Elixir

27 Jun 18 · 3 min read

Streams are a great way to lazily evaluate transformations on collections. Find out how and why you would use a Stream.

Yet another website rebuild

25 Jun 18 · 4 min read

Once again, I decided to rebuild my own website. This time, I decided to write about why.

A Queue is just a Q with 4 silent letters

9 Jun 18 · 4 min read

How to implement a Queue in Elixir

Composing Elixir Plugs in a Phoenix application

23 Mar 18 · 3 min read

A practical example demonstrating how to use Plugs in Elixir.

Surviving technical debt in the real world

21 Dec 17 · 2 min read

I describe my experiences with technical debt, and why it may not always be a good idea to "move quickly".

Elixir Pattern Matching in a nutshell

15 Aug 17 · 2 min read

I describe how to use pattern matching in Elixir, and how it might make you think differently.

First Impressions of Elixir

6 Jan 17 · 5 min read

I share my thoughts and initial experiences with Elixir, a functional programming language.

No excuses, write unit tests

29 Nov 16 · 6 min read

Unit testing can sometimes be a tricky subject no matter what language you’re writing in. In this article, I explain how to get started with testing and stop making excuses for your team.

Copyright JackMarchant © 2019