Thoughts
on building software, reasoning about systems, and the occasional philosophical detour. Written to think out loud. RSS Feed
Featured
-
The Firmbyte Gap: Why the Most Valuable Connections Never Happen
The biggest breakthroughs come from connecting unrelated fields — but the mechanism that produces them is broken. Hidalgo's firmbyte concept explains why.
-
Inversion of Control at the Agentic Boundary
Applying IoC and dependency injection patterns to agentic service boundaries — and why technical plumbing alone won't prevent control inversion.
-
Building a Behavioral Health Monitor and Feedback Loop for AI Agents
Applying signal processing concepts to coding agent actions — from FFT and Markov models to a pragmatic health scoring algorithm for Claude Code hooks.
-
New Domain: bjro.dev
The blog has moved to bjro.dev — a short domain that's easier to share and signals a long-term commitment to writing about software and technology.
-
Linear Types for Agent Safety - An Approach to Trustworthy AI Systems
Linear types applied to AI agent safety — a type system that enforces single-use for destructive operations and statically rejects unsafe agent code.
-
MarkyMarkov - Markov Chain-Based Code Guidance for LLM Agents and Humans Alike
MarkyMarkov uses Markov chains to learn patterns from your codebase and provide fast, explainable code guidance that complements LLM agents.
-
Building Smarter AI Agents With Ideas From Philosophy
Updated:Philosophically informed AI agent design — modeling belief, knowledge, and epistemic norms — makes agent behavior more reliable and inspectable.
-
Context Management for AI Agents: Why MINDMAP Changes Everything
Context is the most underrated lever in AI agent design — this post makes the case for MINDMAP-style context objects as a first-class agent primitive.
-
Cloud LLMs in Production: The Hidden Trust Boundary You’re Already Crossing
Infra teams quietly feed logs, configs, and schemas to cloud LLMs when troubleshooting — extending the trust boundary into a black box they don’t control.
-
Software Development Opinions: LLMs, Agentic Tooling, and What Actually Changes
Opinionated notes on software development in the age of agentic tooling — where LLMs genuinely change how we work and where the hype outpaces the reality.
-
Using casq for Content-Addressable Storage in CI Pipelines
casq brings content-addressable storage to CI pipelines, eliminating redundant builds and test runs by identifying identical inputs with a git-style hash.
-
Introducing casq: Content-Addressable File Storage CLI in Rust
casq is a Rust CLI and library for content-addressed file storage — git-style deduplication without the overhead of a full version control system.
-
Terminal Multiplexers: Why I Switched from tmux to zellij
A quick comparison of tmux and zellij as terminal multiplexers — zellij wins on discoverability with visible, mnemonic keybinds right out of the box.
-
Locking Down AI Agents: Limiting Blast Radius in Production Systems
Practical techniques for sandboxing AI agents and limiting blast radius — filesystem restrictions, network controls, and permission scoping in production.
-
Remap Caps Lock to Left Control on Linux and Windows
Remap Caps Lock to Left Control for a more ergonomic keyboard layout — instructions for Debian/Linux via XKBOPTIONS and Windows via SharpKeys.
Recent Posts
-
Verifier-native search: the 2026 shape
LLM generation costs roughly 1000× more than verification. The serious program-search systems already exploit this. The agent-scaffold mainstream doesn't — and nobody yet compounds search traces into a domain-specific mutator.
-
Claude Code's Bash tool returns exit 1 with no output? Check /tmp.
If Claude Code's Bash tool returns 'Exit code 1' with empty stdout and empty stderr for every command, including `true` and `echo ok`, your /tmp is almost certainly full. Here is the fix.
-
Scanners produce reports. Insurance needs witnesses.
The AI-supply-chain cohort is already crowded: Invariant, Snyk Agent Scan, JFrog, Klaimee, a dozen more. They all ship the same artifact, a point-in-time report. That is not what underwriters can price against. The primitive insurance needs is a falsifiable attestation with a TTL that re-verifies on drift. Nobody ships that yet.
-
Introducing slog: structured logging for every JS runtime
slog is a zero-dependency structured logger for Node.js, Deno, Bun, and Cloudflare Workers with pluggable transports and a Hono waitUntil middleware.
-
Show HN: Cairn — append-only SQLite event store, immutability enforced by triggers
cairn is an append-only SQLite event store where immutability is enforced by triggers, not convention. Go, TypeScript, and Rust SDKs share one test spec.
-
The npm problem nobody wants to work on
Every Node.js production system depends on a single corporate-controlled npm registry with no real alternative — a structural risk the ecosystem ignores.