How to use Dynamic Custom Text in Google Ads (nee Google AdWords)

By James Paden

As a long-time Google Ad(word)s user, I’ve always dreamed of adding custom ad text based on the search keyword. It turns out that functionality has existed for years, I just…


How We Write Commit Messages

By Tony Dewan and Jason Gladish

Why Commit Messages Matter

If you’ve worked on a codebase of any age or with many collaborators, you’ve surely had the question: “why is this code this way?”


How To Unit Test CoffeeScript 2 React Components in Rails

By Tony Dewan and Matt Gordon

For Instrumental, we like to write our React components in CoffeeScript. It’s not the most common choice, but we love the aesthetics of CoffeeScript and we love writing React…


Our Plan for Zero-Downtime Database Transitions with Rails: Part 1

By Nathan Acuff, Jason Gladish, and Joel Meador

Database migrations are causing scheduled downtime. You’re working on a Saturday morning. Customers are getting alerts about service…


In Pursuit of Perfect Locking

By Nathan Acuff and Jason Gladish

Phil Karlton famously noted that there are only two hard problems in Computer Science: cache invalidation and naming things. To this list, many have added off-by-one-errors. What happens when you decide to take on a…


How and Why We Pair

By Tony Dewan

Over the last few years, most of the product teams at Expected Behavior have…


Testing Promises Indirectly with Jest

By Tony Dewan

I recently ran into difficulty creating obvious and readable tests for React components that indirectly rely on promises. I ended up with a handy workaround that allows both native asynchronous and test-friendly synchronous…

Expected Behavior Blog
Expected Behavior Blog
We're a team of friends who build awesome software together. We run Instrumental, a super duper high-scale server and application monitoring tool, and DocRaptor, an HTML-to-PDF conversion API. This blog is just random things we've learned along the way.
More information
Followers
30
Elsewhere