Tooling

The SSH Commands I Actually Use Every Day

A practical field guide to SSH: keys, agents, config files, tunneling, jump hosts, and the small commands that quietly make remote work tolerable

I have been using SSH for over twenty years and I still occasionally forget the flag for tunneling. Not because the syntax is hard, but because SSH has so many little features that you only reach for once every few months — and by the time you need them again, your fingers have moved on.

So this post is the field guide I wish I could hand to past-me. Not “how SSH works under the hood” — there are excellent treatises for that. Just the dozen or so commands and config patterns I genuinely reach for during a normal week of operations work.

Linux linux ssh tooling

My Claude Code Setup, From Zero

Installing Claude Code and wiring it up the way I actually use it: CodeGraph for code intelligence, MCP servers, plugin marketplaces, LSP, GitHub Spec Kit, and Herdr to keep the agents running.

A fresh Claude Code install is useful. A configured one is a different tool entirely. The gap between the two is maybe fifteen minutes of setup — a code index, a handful of MCP servers, two plugin marketplaces, a spec workflow, and a runtime to keep it all alive — and I keep re-doing it every time I move to a new machine. So here it is written down, in the order I run it.

AI claude-code ai mcp

Bootstrap Go Projects with gonew

Use the official gonew tool to scaffold new Go projects from a template repository — and a real-world example with template-api

Every Go service I start tends to need the same plumbing: a cmd/ entry point, a Dockerfile, a Taskfile, golangci-lint config, CI workflows, a release pipeline. Copy-pasting from the previous project works, but it gets stale fast. gonew — the official Go scaffolding tool — turns any module into a reusable starting point.

Golang golang tooling scaffolding

claude-plugins: a personal Claude Code marketplace for DevOps and Go

A curated set of Claude Code plugins — agents, commands, and skills — covering DevOps, software engineering, and modern Go development.

Once you start using Claude Code seriously, you accumulate prompts. A snippet that always produces the right golangci.yml. A spell that turns “I need a GitLab CI pipeline” into a working .gitlab-ci.yml. A code-review checklist you keep pasting in. After enough copy-paste, the obvious move is to package those into proper Claude Code plugins. That’s what claude-plugins is.

Tools AI claude-code ai devops

Mise — Simplify Your Dev Toolchain

How Mise replaces nvm, pyenv, and scattered version managers with a single config file for runtimes, tools, and environment variables

Working across large repositories that mix multiple technologies is common in modern software teams. Keeping everyone aligned on the same tool versions, environment variables, and runtimes has always been a friction point — until I started using Mise (mise-en-place).

It has since replaced several tools on my machine (goodbye nvm, reduced Homebrew usage) and become my go-to for managing development environments, both locally and in CI.

DevOps mise devops tooling