Devon C. Estes

Migrating to Elixir with the Strangler Pattern

I think it's fair to say that a good amount of folks - if not the majority of them - using Elixir in production today are doing so after migrating an application to Elixir from some other language instead of just building in Elixir from scratch. Of course this idea of re-writing an application is scary, and rightly so! But there are some ways to make this process simpler and less scary, and also to reduce the likelihood of introducing regressions during this process, and that's what I'm going to go over today. »

Designing For Elixir Compiler Hints

There are some nice new features coming in Elixir 1.11, and one many folks are excited about are some new compile-time checks. The one I've heard the most excitment about is the the compile-time check for non-existent fields in structs. »

Testing Third Party Integrations

One thing that is always hard, regardless of what language you're working in, is testing integrations with third party services. I mean, how are you going to test something like uploading files to S3 without actually uploading the file to S3?! The answer to that is usually "mocking," but then there comes the question of how exactly one does that. Well, today I'm going to show how I test these sorts of things in code I work on. »

Trying To Speed Up Compilation With Absinthe

I run my tests a lot when I'm working, and nothing bums me out more when I'm running my tests so frequently is long compile times before I can even run my tests. One of the unfortunate issues with absinthe is that it's a very macro-heavy library, and as such it effectively touches every file in your application, meaning that you need to recompile a ton of files if you're using it. »

Local Metrics Aggregation With Counters

Recently I needed to get a better picture of how my application's database connection pool was doing, but there was a bit of a hitch. DBConnection has a highly optimized queuing algorithm, but the downside of that optimization is that you can't get an accurate picture of the number of idle and busy connections in the pool at any given time like you can with Poolboy. »