The Steps to Take to Become an Employable Elixir Developer.

Photo by Stephen Leonardi on Unsplash

Your Elixir Learning Path.

Deciding what you should learn is critical. You need to be exposed to new information and understand what the Elixir ecosystem looks like.

You can waste a lot of time learning things that aren’t critical and never learn key skills that actually matter to be a capable elixir developer.

Unfortunately, you know the least you need to know about what you should learn when you first start learning.

Right now, there aren’t a ton of terrific resources for new developers — at least not as many in some other languages…

When You Optimize For Thinking Speed, Then 1 + 1 = 3.

Photo by Saiph Muhammad on Unsplash

Pairing is the process of creating software collaboratively. It’s usually done between 2 developers though other forms of it involve more people.

Typically one person will be the navigator, and the other person will be the driver.

The driver is the person who controls the keyboard. The driver worries about the trees, not the forest. They wrote the code and worry about the specific implementation details.

With Real World Examples Mocking SMS with Twilio.

Mocks simulate real-world behavior for the sake of convenient testing.

Mocks are the squirt gun vs. the real gun. They can mimic behavior but aren’t nearly as dangerous.

José Valim wrote an excellent piece on mocks and explicit contracts, and I recently had to opportunity to implement a Twilio Mock on my current project. I’ll share the experience of taking his advice and putting it to practice so that you can do the same.

The Goal

The goal is to use a Twilio Sms Mock to verify and send. …

Learn How to Maximize Test Coverage Using a Book Search Example.

Photo by Crawford Jolly on Unsplash

When testing interactions, permutations of test cases grow exponentially.

What does that mean? Well, imagine you have to test a single feature. For example, you want to be able to search a list of books by title. Then, you have a series of test cases such as:

  1. Filter by full book title should find matching books.
  2. Filter by partial book title should find matching books.
  3. Filter by no book title should find all books.
  4. Filter by non-matching book title should find no books.

Written in an Elixir/Phoenix project, those…

Thoughts on Building Your Portfolio and New Skills.

If you are a new developer, you might be in the portfolio-building stage of your new career. Deciding on which project to build to increase your skillset and build a portfolio can be overwhelming. You have unlimited choice, and you might not know what is reasonable to expect for a certain timeframe yet.

In this article, you’ll explore the reasons you want to build a side project. …

Use The --slowest and --exclude Flags to Profile Your Slowest Tests.

Tests are wonderful. Tests are little rules and assertions that you can put in your codebase that guarantee you haven’t broken anything while developing your feature.

However, as lovely as tests are, they also suck up a lot of time. How many hours do you think you’ve spent waiting for tests to pass? If you use Test Driven Development, then that number is probably relatively high.

I’ve worked on a project that had a 5–10 minute local test suite (It was JavaScript). That’s 5–10 minutes of my workday every…

Make Easily Composable and Reusable Queries.

In my earlier article, Ecto with Phoenix in 4 Minutes, I summarized how Ecto handles data persistence and validation in your phoenix app. If you would like a refresher on Ecto queries, I recommend you start there.

Photo by Karine Avetisyan on Unsplash

What are composable queries?

Composable queries are a way of building queries to your database such that you can combine them.

For example, let’s pretend you are building a blog app. You may wish to query posts for a variety of reasons. …

Narrow in and fix bugs faster using the binary search technique.

Photo by cottonbro from Pexels

Many companies struggle to find a reasonable way to assess developers, and the internet is rife with developers debating the merits of algorithmic questions or convoluted whiteboarding interviews.

However, I had the chance to interview with a company that found a better way. In order to test if I could do the job, they had me do the job (crazy, I know). After some standard interview questions, we sat down and debugged a problem that used to exist in their application.

A lot of developers would find that daunting…

Dozens of Rejections Might Mean You Aren’t Listening. Consider This Instead.

Photo by Richard Dykes on Unsplash

Browse on LinkedIn or Twitter, and you’ll see developers struggling to find work. There are stories of developers who applied to hundreds of jobs that have yet to receive an offer.

Often this isn’t seen as a negative. Instead, it’s a signal of this person's hustle and willingness to grind. It’s something to brag about.

But should this be seen as a badge of honor? …

Learn How To Handle Data Persistence and Validation in Phoenix with Ecto.

If you are not already familiar with setting up a Phoenix project, read the Phoenix Getting Started Guide and Phoenix Installation Guide. If you are a Windows user, you can read my article Elixir & Phoenix v1.5.9 Getting Started on Windows 10.


A schema is a definition of how your program models your data. For example, you might have a user schema that validates that all users must have a name, an email, and a password.

An Ecto Schema is used to map and validate data from one…

Software Engineer. I create educational content focused on technology for mobile and web applications.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store