Occasional notes on DevOps patterns, AI infrastructure, and the in-progress pivot from platform DevOps into AI/ML platform work. More as I have things worth saying.
A two-line rule for shell automation — twice means a function, three times means a library — with the two scripts I actually use to live by it: an AWS SSO helper and a logger.sh that lands in every repo I create.
The setup behind daily AI use that actually compounds — scoped access with its own identity, slash commands as reusable workflows, a memory pipeline that survives session boundaries, and an autonomous agent fleet that runs on every PR.
Stow-managed dotfiles with a three-layer shell config, conditional gitconfig for multi-identity work, and machine-specific overrides that never get committed. The patterns that make a fresh machine feel like home in fifteen minutes.
An apply went red because somebody had clicked resources into existence weeks earlier and an AI-generated PR tried to claim them. The fix wasn't glamorous — filter the bad module, delete the manual resources in pre-prod, let terraform create them fresh.
12 patterns I use to keep GitLab pipelines maintainable across a monorepo with frontend, backend, IaC, and container builds going to three environments. Modular includes, anchor-based environment routing, change detection, layered security scanning, automated promotion.
Frontend preview environments are easy. The same pattern on actual GCP backend infrastructure is a different beast - per-MR Cloud Run, shared dev Cloud SQL, isolated terraform state, three-layer teardown.