Devon C. Estes

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. »

What's Inside a Reduction?

I recently finished up the basics for a feature in Benchee that I had been pretty excited about for a while now - reduction counting! But after trying it out on my own for a bit to look for bugs and see how it could be best used so I could document the feature well, I pretty quickly ran into some confusing results. »

A proposal for an Absinthe application structure

One of the great things about GraphQL is how broad the abstractions are. Everything is just an "object", with "fields"! This makes things infinitely composable, and is where a good deal of the power in GraphQL comes from. But, like all things, there are downsides to this - first and foremost is that it makes organizing a project difficult. »