{"slug": "tales-from-the-software-factory-the-cron-and-the-vm", "title": "Tales from the Software Factory: The Cron and the VM", "summary": "A developer replaced a CI-based cron job that posted Slack nag messages about out-of-sync LLM gateway model lists with a bot running on an exe.dev VM that outputs a diff of the proposed change plus a button to queue it into the CI/CD system. The bot is checked into the team's monorepo alongside their other bots, which continuously deploy.", "body_md": "The other day, I built a boring bot that could tell me whether the model list in our LLM gateway was out of sync with one of our LLM providers. We deploy frequently enough that doing this dynamically has not been a priority, but it’s good to know when it’s time to update things. Years of experience kicked in: Shelley and I wrote the check as a test, and I used our CI system (Buildkite; it’s fine; next time it bugs me, it’s getting yeeted in favor of a vibe-coded improvement) to run a cron job that, when we need to do work, posts to Slack.\n\nAs soon as I was done, I realized my mistake, and threw it all away. I started an [exe.dev](http://exe.dev) VM instead, to add to our fledgling army of bots. Now, instead of the output being “hey, you need to remove that deprecated model,” the output is a diff with the proposed change, together with a button to queue the change into our CI system (which, of course, leads into our CD system). My old mindset was wanting a bot to nag me into doing the thing. The new mindset is to have the bot take the task as close to the finish line as possible. This sort of state over a CI system, while possible, is unnecessarily miserable. If VMs are cheap, it’s better to have a little bot server that you can customize to your heart’s content.\n\nDon’t worry; the bot is checked in, right next to our other bots, all in our monorepo. The bots continuously deploy. Life is good. Good bot.", "url": "https://wpnews.pro/news/tales-from-the-software-factory-the-cron-and-the-vm", "canonical_source": "https://blog.exe.dev/cron-vs-vm", "published_at": "2026-09-22 13:00:00+00:00", "updated_at": "2026-09-22 13:22:21.430134+00:00", "lang": "en", "topics": ["ai-infrastructure", "ai-tools", "mlops", "developer-tools"], "entities": ["exe.dev", "Buildkite", "Slack"], "alternates": {"html": "https://wpnews.pro/news/tales-from-the-software-factory-the-cron-and-the-vm", "markdown": "https://wpnews.pro/news/tales-from-the-software-factory-the-cron-and-the-vm.md", "text": "https://wpnews.pro/news/tales-from-the-software-factory-the-cron-and-the-vm.txt", "jsonld": "https://wpnews.pro/news/tales-from-the-software-factory-the-cron-and-the-vm.jsonld"}}