No, Really, Bash Is Not Enough: Why Large-Scale CI Needs an Orchestrator
A deeper dive into why shell scripts cannot replace a proper CI control plane, drawn from years of building and operating CI systems at scale.
I'm Ian, a software engineer and entrepreneur based in The Netherlands. I'm an engineer at Mercury, a financial technology company that develops bank products for startups of all sizes. I write about engineering, cooking, and life.
A deeper dive into why shell scripts cannot replace a proper CI control plane, drawn from years of building and operating CI systems at scale.
Why GitHub Actions is the Internet Explorer of CI, and why Buildkite offers a better path forward for teams that care about developer experience.
A deep dive into how Punycode works, and why I think it's so neat.
A comprehensive guide to CRDTs and their tradeoffs, from counters to sequences. Written in the spirit of the Typeclassopedia, exploring how different CRDTs solve the distributed consensus puzzle.
When you salt matters as much as how much you salt. Understanding the timing changes everything.
A look at the Trump administration\
An exploration of how institutional decisions and systemic policies can cause widespread harm with less accountability than direct violence, examining cases from healthcare to education where bureaucratic choices have life-altering consequences despite being treated as mere business decisions.
A poem
A collection of memories