
/dev/world 2025
4-5 SEPTEMBER • NAARM | MELBOURNE
Josh Deprez

Maintaining the Buildkite Agent
Three years ago I decided to take a break from being unemployed, and joined Buildkite. My job involves the care and feeding of the Buildkite Agent, a cross-platform CI/CD runner written in Go from 2014 until today, that communicates with a Ruby on Rails monolith. The pairing of Go client with a Rails backend works well in some ways, and in others, seems totally unnatural - Ruby has historically been a scripting language on Mac OS X, whereas Go has historically had greater server-side use. However, Go's strong cross-compilation support solves many basic problems across the main targets of Mac, Linux, and Windows, and provides many OS and arch combinations almost for free. Which is good, because I'd rather not have to manage a zoo of platforms for testing. I will talk about: - the trials of cross-platform support when everybody codes with a Mac - fun times maintaining a codebase that is over 11 years old - teaching Ruby on Rails engineers Go, and other techniques to getting stuff done And finally, the question I'm sure is top of everybody's minds: what's the oldest Mac I can run a Buildkite job on?
About the presenter
Josh is a software developer from Tasmania working for Buildkite, previously for Google. Their current hobbies are learning German, fixing the shed, and formally verifying their thesis with Lean 4. Josh stubbornly refuses not to come to /dev/world.