Skip to main content
  1. Posts/

The road to Elixir

·4 mins

A personal account of how I got started with Elixir.

The question #

I’ve been asked many times ‘What, Elixir?’, shortly followed by ‘Why would you want to use that?’. I usually start with an enthusiastic introduction but inevitably forget to include some of what I consider the more important points. So here’s the full story…

The context #

It was mid 2016. I had worked for quite a number of years as a Java developer in Dublin, Ireland. But finally after lots of ‘humming and hawing’ my wife and I decided to relocate with our young family to her home village in Salamanca, Spain – it just felt like a good move, better climate, get out of the city etc. But we would be leaving behind good jobs and from a professional point of view face a much less certain future. My wife had a guarantee of some part time work and with that we knew we could (just about) survive, somehow that was enough – so we made the move.

What now? #

Once we’d moved and settled our kids into schools and crèche I had time to think about – what now? I knew this time would come and it wasn’t easy!

This was pre-pandemic and remote jobs were few and far between, local tech jobs were scarce and I was afraid my Spanish wouldn’t cut it. To make matters worse (or harder for myself) I decided that I wanted to try something new that wasn’t Java. Don’t get me wrong, Java had been good to me, it had given me good and interesting work and allowed me to be part of teams providing cool and innovative solutions. But I yearned for something new, something different. In years previous I had tried to get into Ruby and then Clojure and enjoyed the learning process, but somehow it didn’t stick, perhaps because my day job was in Java and I simply didn’t spend enough hours coding Ruby or Clojure to become proficient.

I decided I’d give JavaScript a shot – I had mixed feelings, I had done plenty of JavaScript coding to get stuff to work in browsers and always found it to be a bit hacky but I knew much of that was due to browser incompatibilities. Node.js was hitting the headlines at the time and the JavaScript hype was huge. Lacking a better plan and armed with two new, freshly smelling, JavaScript books I powered up my Laptop and got stuck in. This time while learning the language properly I started to appreciate its power and elegance but ultimately I couldn’t handle the fact that it was loosely typed, it just didn’t suit my personality. But time was passing and I was anxious to find a solid direction.

I had long been a follower of the Pragmatic Programmers and around this time I came across Dave Thomas’s book Programming Elixir, I read the first chapter “Take the Red Pill” and like Neo I couldn’t resist.

Seeing the light #

Elixir seemed to be everything I was looking for and more. I couldn’t put the book down – I was mesmerised – functional, pattern matching, concurrency, the battle hardened BEAM, Erlang… But Elixir was young, only just five years old at this point – this was early adoption – and I wasn’t an early adopter, at least not usually. But I could see that this was special; the language was carefully crafted, the online documentation was already excellent, there were first class build tools, a bright and active community, a great dedicated forum, several books had already been written and printed, there was excitement. Hooked by this magic potion, I had seen the light and couldn’t go back, there was no antidote, even if I wanted to find one – I was going all-in on Elixir – ’let the chips fall where they may’.