---
title: "Allen Brooks (@earnestamateur) | Hashnode"
description: "15 years building software, most of it learned by watching it get built badly. Now building platforms solo (heavy Claude Code) at Lionshead."
url: "https://hashnode.com/@earnestamateur"
---

@earnestamateur

# Allen Brooks

@earnestamateur · Greenville, SC, US · Joined July 2026

15 years building software, most of it learned by watching it get built badly. Now building platforms solo (heavy Claude Code) at Lionshead.

### [Invariant checks: the comment is the check you never wrote.](https://lionshead-notes.hashnode.dev/invariant-checks-the-comment-is-the-check-you-never-wrote?utm_source=hashnode&utm_medium=feed)

Twelve days ago I built a check that reads my company standards and asserts that every enforcement mechanism they name actually exists as code. Pointed at the repository where those standards are writ

13 min read · [lionshead-notes.hashnode.dev](https://lionshead-notes.hashnode.dev/invariant-checks-the-comment-is-the-check-you-never-wrote?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/invariant-checks-the-comment-is-the-check-you-never-wrote/6a9565e3f453b5d4baee8367) [Aug 31](https://hashnode.com/posts/invariant-checks-the-comment-is-the-check-you-never-wrote/6a9565e3f453b5d4baee8367)

### [My retro proposed three fixes and built none of them. Its health check read fine the whole time.](https://lionshead-notes.hashnode.dev/my-retro-proposed-three-fixes-and-built-none-of-them-its-health-check-read-fine-the-whole-time?utm_source=hashnode&utm_medium=feed)

Last Sunday I published a post about the agent fleet that builds my backlog. It ended with a section called "What I have not run," in which I said the retrospective pass was designed, was accepted, an

14 min read · [lionshead-notes.hashnode.dev](https://lionshead-notes.hashnode.dev/my-retro-proposed-three-fixes-and-built-none-of-them-its-health-check-read-fine-the-whole-time?utm_source=hashnode&utm_medium=feed)

[Aug 24](https://hashnode.com/posts/my-retro-proposed-three-fixes-and-built-none-of-them-its-health-check-read-fine-the-whole-time/6a8ba6523bd1b52338aca0fe)

### [I handed my backlog to an agent fleet for ten days. Three of its safeguards were lying to me.](https://lionshead-notes.hashnode.dev/i-handed-my-backlog-to-an-agent-fleet-for-ten-days-three-of-its-safeguards-were-lying-to-me?utm_source=hashnode&utm_medium=feed)

I have a launch with a date that does not move. I also have a job between eight and five, a two year old, and a four month old. Everything I build, I build around those. So the binding constraint is n

14 min read · [lionshead-notes.hashnode.dev](https://lionshead-notes.hashnode.dev/i-handed-my-backlog-to-an-agent-fleet-for-ten-days-three-of-its-safeguards-were-lying-to-me?utm_source=hashnode&utm_medium=feed)

[1](https://hashnode.com/posts/i-handed-my-backlog-to-an-agent-fleet-for-ten-days-three-of-its-safeguards-were-lying-to-me/6a79a79e89720e850b8ee8ab) [Aug 10](https://hashnode.com/posts/i-handed-my-backlog-to-an-agent-fleet-for-ten-days-three-of-its-safeguards-were-lying-to-me/6a79a79e89720e850b8ee8ab)

### [Killing the long-lived tokens in my CI, one exchange at a time](https://lionshead-notes.hashnode.dev/killing-the-long-lived-tokens-in-my-ci-one-exchange-at-a-time?utm_source=hashnode&utm_medium=feed)

A static API token stored in GitHub Secrets is a breach that has not happened yet. The timer is already running. You do not know how long the fuse is, because a long-lived token's fuse is however long

9 min read · [lionshead-notes.hashnode.dev](https://lionshead-notes.hashnode.dev/killing-the-long-lived-tokens-in-my-ci-one-exchange-at-a-time?utm_source=hashnode&utm_medium=feed)

[Aug 3](https://hashnode.com/posts/killing-the-long-lived-tokens-in-my-ci-one-exchange-at-a-time/6a6ffc46a6b81fb92db66930)

### [How do you know a passing check still works? Make it fail on purpose.](https://lionshead-notes.hashnode.dev/how-do-you-know-a-passing-check-still-works-make-it-fail-on-purpose?utm_source=hashnode&utm_medium=feed)

A feature makes money. A check protects it. Those are not the same job, and the difference is why checks rot. When you ship a feature, the market tells you fast whether it works. Someone signs up or t

6 min read · [lionshead-notes.hashnode.dev](https://lionshead-notes.hashnode.dev/how-do-you-know-a-passing-check-still-works-make-it-fail-on-purpose?utm_source=hashnode&utm_medium=feed)

[Jul 31](https://hashnode.com/posts/how-do-you-know-a-passing-check-still-works-make-it-fail-on-purpose/6a6bf1eefdeab7409347ac01)
