Using tenancy is critical in multi-tenant SaaS applications. You'll see how Ecto's recently added prepare_query callback can be used to verify that all queries in an application have tenancy set properly.
Exq is a background job processing library for Elixir. In this post, I perform benchmarks on the speed of inserting jobs via Exq. You'll walk away with actionable ways to improve your write throughput.
We replaced our push service with an open-source library that I wrote—PushEx. This post will walk through the different lessons we learned and challenges that we solved.
Writing tests is both necessary and often hair-pulling. Certain things that we want to test may be just plain hard. Let's look at how Elixir helps making testing hard things easy.
Patterns from an internal business app I wrote for work. Examples for database and other parts of the system.
Story and tips from a microservice migration out of SalesLoft's production codebase
Offering code and ideas for distributed caching that uses Cachex for caching and pg2 for distribution.
Let's explore a bug that I encountered today that reinforces our understanding of how compilation works in Elixir.
PushEx is an implementation of Phoenix WebSockets/channels which handles best practices of running WebSockets for you, but allows your business logic to be specified through simple behaviour modules.
Exploring Discord's "Instruments" library to replace Elixometer. Includes sample config!
Overview of Erlang memory "gotchas" and how websockets can exacerbate the problem
Snapshot testing can make testing and serving API fixtures a breeze. Let's see how.
Didn't quite make all 28 days
Discover how my_map[:a] is evaluated
Very basic practical example of using pg2 for keeping distributed processes in sync
Go over how I use Mockery to implement mocking in my unit tests
Look at how Elixir Enum/Enumerable is built
Recap of a recent talk at Atlanta Elixir Meetup
Demonstrates a technique to add debouncing to Phoenix websockets
Look at how the HTTP request for Phoenix websockets is handled
Dive into how Phoenix websockets work
Reflection on my learning process and things that I would do differently.
Demonstrate creating a chokepoint across a cluster of nodes
A simple macro use case broken down
Look into how the Peerage library works
Overview of the basics of Elixir node networking
Explore options for sourcing private libraries, and potential tradeoffs.
Learning Elixir brings with it challenges of a new language, but what of the new paradigm?
A few mistakes are highlighted that end up slowing me down every time they pop up
Going over my editor, versioning, etc.
Tips and a practical example for designing supervisors in Elixir
Think about alternatives to stock controllers in a Rails (or something else) application
Advice on how to take Twilio applications to production
Using Capybara & ImageMagick to create visual regression tests
Digging into the word "exceptional" and what it means to me
Using New Relic to discover performance improvement areas
Introducing a tool to help maintain integration parity without integration tests
How I spend my time when learning something new
Evaluating impact to pick a side project