For AI agents: a documentation index is available at /llms.txt. Every page also has a Markdown version at its URL plus .md.

← What I do

~/what-i-do/devops

DevOps & CI/CD

A pipeline is a promise about quality that runs on every change. I build ones that are deterministic, fast, cheap to run and hard to quietly weaken, including by AI agents.

01What I can do for you

Quoted by complexity

CI/CD & quality-gate setup

One deterministic rule set - format, lint, types, tests, coverage, security - that runs identically in the editor, before push and in CI. Ratcheted so legacy code can adopt it on day one.

Hourly or quoted

Legacy modernisation

Framework and stack upgrades, deprecated code removed and duplicated logic consolidated, with tests and a quality gate in place first, so the upgrade doesn’t break what already works.

Talk to me about this →services

02How I work

One rule set, three placements

In-loop, pre-push and CI enforce the same rules. Different rules in different places is how you get "green locally, red in CI".

Seen in: Foundry →

Ratchet, don’t gate

Existing issues become a baseline that may only shrink. Only new violations fail, so a legacy codebase can adopt strict rules on day one.

Seen in: Foundry → · Leash →

The exit code decides

Linters, types, tests and scanners own pass/fail. AI may propose a fix, but it only lands when the deterministic gate passes.

Seen in: Foundry →

Secure the supply chain by default

SHA-pinned actions, least-privilege tokens, secret and dependency scanning, and no long-lived keys in CI.

Seen in: Foundry → · jev-tools →

Nobody quietly weakens the gate

Loosening a rule is its own pull request with a label a human sets. A change that relaxes the gate next to the code that needed it is refused, whether a person or an agent wrote it.

Seen in: Foundry →

Red CI is a task, not a report

Every push is watched until it is green. A failure gets its cause fixed and pushed again, not a retry button or a note saying it’s probably unrelated.

Small, single-purpose changes

Every commit builds and does one thing. Refactors and formatting ship apart from behaviour changes, so a review reads the change, not the noise.

Measure the pipeline

Know where the gate spends its time and whether a change is converging or thrashing, so the slow step gets fixed instead of tolerated.

03What I’ve built

open source01

Foundry

A polyglot engineering gate for AI-assisted development

  • GitHub Actions
  • mise
  • Python
  • POSIX shell
Aug 2026 - present
open source02

jev-tools

Three TypeScript tools that put a cheap, typed model in front of the expensive one

  • TypeScript
  • Node.js
  • Jev
  • GitHub Actions
Sept 2026 - present★ 2

04Writing

command.exeesc

↑↓ select · Tab complete · Enter run · Esc close

doom.exe

WASD move · ←→ turn · Space fire · E use · Shift run · Esc menu · click to capture mouse · licences