skip to main content

Blog | About me

Throttling Jenkins pipelines per node

It turns out that throttling pipeline jobs on Jenkins is broken. At least, it is not possible to limit the number of pipeline jobs that run per node with the throttling plugin, even though that feature does exist for freestyle jobs. Instead, we can set up a work around using the lockable resources plugin. First,… Read more

Making Chromedriver and Chrome versions match in a Docker image

I keep running into this problem where UI test tools need a Chrome browser installed, but come packaged in npm with an outdated chromedriver dependency. Keeping the two in sync in any environment where these test tools run is a must, and I’ve long since given up on trying to do this manually on any… Read more

Why are developers against testability?

A number of times in my career, I’ve come across developers who were determined that application code should never be changed just to facilitate testing. Even when everybody recognizes that flakey tests are a problem, somehow adding testability features to the app itself to fix that flakiness is beyond the pale. It is a belief… Read more

Scaling the y-axis of Kibana visualizations

Have you ever googled something so many times without success that you thought it must be impossible, only to later realize that you just weren’t using the right words? It happened to me this week, so I’m posting this in the hopes that someone else using the same language I was using might find their… Read more

Adventures with escaping quotes in Jenkins pipelines

It seems inevitable that if you deal with writing pipelines in Jenkins, you’ll run into issues dealing with quotation marks in commands. Escaping quotes is a special nightmare in shell scripts generally, but Jenkins adds yet another layer of confusion on top of that. I’m going to cut through that layer and find out what… Read more