Testing File Downloads with Guzzle

I have a class that does two things: downloads a call recording as an MP3 from Twilio and then re-uploads it to Amazon S3 for permanent storage. This scenario happens frequently, and I wanted to be able to test it without actually making a real HTTP request from Twilio or to Amazon S3. In this … Continue reading Testing File Downloads with Guzzle

2018 Resolutions

From where I sit now, 2018 is shaping up to be a great year, both personally and professionally. I have a few resolutions and goals I wanted to jot down so I can see if I actually accomplished them in 2018. Less Photos of My Children I want to take (and share) less photos of … Continue reading 2018 Resolutions

Generating Custom Sequences in Postgres

Postgres, unlike MySQL, uses sequences for auto-incrementing IDs. It's a very powerful feature, and gives you a lot of control over how to store a primary key. But say you want to generate a unique value for a field in a table, only this value is visible to the end user, and always increments by a … Continue reading Generating Custom Sequences in Postgres

Unit Testing Your Service Layer is a Waste of Time

Writing unit tests for your application’s service layer is a waste of your time and won’t strengthen your application any better than functional tests would. Writing functional tests that thoroughly test your application does what it says it will do correctly is a much better use of your resources. I first learned about test driven … Continue reading Unit Testing Your Service Layer is a Waste of Time

I Am a Great Programmer, But Horrible At Algorithms

This is an old post written in February 2013 and published my old blog. I am publishing it here because it resonated with the community when it was first posted. The basic idea continues to flourish with the rise of sites like rejected.us and Max Howell’s very popular tweet. I am a great programmer, but … Continue reading I Am a Great Programmer, But Horrible At Algorithms