Build real-time features and a synchronized experience across browsers.

Chris McCord showed how a single Phoenix server could power a million connections. That means a million people send and receive messages in a chat application powered only by a single physical server.

Phoenix is industry-leading when it comes to scalability and real-time systems.

What is a real-time system?

You might be more familiar with a typical one-way server request. The client requests information from the server, and the server responds.

Lean into it, so you can stop caring and focus on providing value instead.

Much of the information below was collected during a discussion of developers during a weekly book club that I attend. I have the wisdom of other developers to thank for the useful tips to help you, and myself deal with the curse of imposter syndrome. It’s irony I suppose, that writing a post about imposter syndrome makes me feel like an imposter.

Photo by Claudia Ramírez on Unsplash

What is imposter syndrome?

The tendency to feel like an imposter in your position. …

The first rung of the ladder is too high, and that’s a problem for everyone.

Once you get into it, software engineering is an opportunity-filled industry with ample room for advancement and growth. The demand for software engineers is high and likely will be for some time.

But, we have a growing problem in the industry. There are too many juniors competing for a handful of opportunities, and at the same time, too few senior developers to meet the industry demand.

Becoming a software engineer is hard.

It’s tough to get your foot in the door in the industry. Once you do, you will have ample…

How to name your tests using Phoenix and Elixir examples.

Readable code matters

Developers spend much more of their time reading than writing.

Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …[Therefore,] making it easy to read makes it easier to write. — Bob Martin

Developers spend as much time maintaining and testing their code as they do writing code for new features.

A report found developers spend 39% of their time on new features and 40% of their time on…

Leverage test fixtures, Ex Machina, and Faker to create high-quality test and development data.

Photo by Binyamin Mellish from Pexels

What is seeding?

Seeding is the initial creation of data in your database typically run before your tests or to create a convenient developer or QA testing environment. Though, you can seed in a production or other environment as well.

Why should you care?

By learning how to create seed data effectively, you can dramatically improve your tests' reliability, reusability, and readability.

More importantly, you will improve the speed and quality of your development cycle to release more features and fewer bugs.

Examples using the demo blog application

All of the following concepts and examples can be applied in…

Spend less time fixing code and more time delivering valuable new features.

Photo by Munro Studio on Unsplash

Knowing how to debug your Phoenix or Elixir project properly is the difference between finding a bug in a few minutes or spending the next few painstaking hours reading thousands of lines of code looking for the one line that’s causing your app to crash, your boss to lose their hair (there’s a reason many developers are bald), and your users to abandon ship.

In this article, you’re going to learn how to leverage IO, IEX, and the built-in Visual Studio Code debugger to improve your debugging ability.

Debugging using Elixir’s IO module

Using commands, tags, arguments, and test watching to improve your testing experience.

Coming from a Javascript background, testing Phoenix and Elixir is a dream come true. Tests are extremely fast, often taking mere seconds to run. Developers who are familiar with elixir should be aware of the Mix module.

Mix is a build tool that provides tasks for creating, compiling, and testing Elixir projects, managing its dependencies, and more.
- mix docs

By leveraging Mix properly, you can gain fine-tuned control of your tests and further improve the convenience and speed of your testing.

You will learn how to:

  • run tests by folder
  • run test…

A quick cheat sheet of the most common elixir syntax.

This is a brief guide using the Pareto Principle (80/20 rule) to the most common Elixir syntax you’re going to encounter. If you want a crash course or a quick refresher on common Elixir concepts, then this article is for you.


Elixir is a dynamic, functional language for building scalable and maintainable applications.

Elixir leverages the Erlang VM, known for running low-latency, distributed, and fault-tolerant systems. Elixir is successfully used in web development, embedded software, data ingestion, and multimedia processing, across a wide range of industries.


Getting started with Elixir

Skip this…


To run a Phoenix project on your Windows 10 machine, you should install:

  • Node js
  • Elixir & Erlang
  • Hex
  • The Phoenix application generator
  • PostgreSQL

Install Node

You probably already have Node if you’re working on other projects, but if not, you can download a node installer for Windows 10.

Install Elixir and Erlang

You can install Elixir and Erlang by downloading an installer or using chocolatey (a package manager for windows)

cinst elixir

Install Hex

  • In your PowerShell run:
mix local.hex

Install Phoenix application generator

  • In your PowerShell run:
mix archive.install hex phx_new 1.5.9

Install PostgreSQL

A platform-agnostic guide for thinking about cohorts.

What is a cohort?

A cohort is a group of people separated from your typical user base. These cohort users have access to cohort-specific features that other users do not.

With the growth of Agile, cohorts are becoming a go-to tool for many teams who want to move quickly and experiment with new features without impacting a large portion of their existing user base.

Use cases for cohorts.

Your use case will change how you decide to implement cohort features in your software. Here are a few examples:

  • You’re implementing new experimental features and want to test them out on a pre-selected group who know they are trying…

Brooklin Myers

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