Writing
The complete chronological archive.
All writing
Page 8 of 10
Ports and Adapters, Earned Not Cargo-Culted
Jun 2026·Ports and adapters architecture can rot into ceremony. Use two adapters, typed errors, DTOs, and parity tests to keep seams useful.

One Policy Gate for an Autonomous Agent
Jun 2026·Letting an LLM open PRs is risky. Autonomous agent guardrails need one beforeToolCall gate, a per-project allowlist, and audit logs.

Postgres Is the Only Backend You Need
Jun 2026·Postgres job queue design for Slack agent tasks: claim rows with SKIP LOCKED, recover crashes, schedule safely, and skip Redis or SQS.

A Slack Mention Becomes a Pull Request
Jun 2026·Slack engineering agent flow from @mention to PR: resolve channel scope, enqueue work, run the agent, and capture review by reaction.

Submitting Timesheets from Slack Without Writing Too Early
Jun 2026·Slack timesheet submission can trigger approvals too early. Use preview, re-read, confirmation, and status checks before writing.

Walking Back from Serverless
Jun 2026·Serverless to a single Go binary fixed upload caps, cold starts, and streaming friction in an artifact host without moving DynamoDB or S3.

One Binary, One Box
Jun 2026·Single Go binary setup for one small EC2 box: host routing, OAuth cookies, on-demand TLS, and deploys by copy and restart.

A Home for AI Artifacts: The Platform We Built So Nothing Leaves the Company
Jun 2026·AI-generated artifacts need durable, authenticated URLs. Here is how an internal platform turns assistant output into links that do not expire.

Open-weights LLM evaluation for self-hosted use
Jun 2026·Self-hosted LLM evaluation needs real prompts, latency budgets, and memory checks before swapping open-weights models.

The relationship between feedback culture and shipping velocity on AI product teams
Jun 2026·Bad AI answers hide in fluent drafts. AI feedback culture turns flags, traces, and edits into evals before the next release.