---
title: "Software — Code that earns its place"
description: "Tools, not platforms. River Caudle's software doctrine: small, legible, no phone-home, auditable. Code you own and can run yourself — source-available and self-hostable, boring on purpose."
canonical: "https://rivercaudle.com/software/"
author: "River Caudle"
keywords:
  - OT security tooling
  - auditable code
  - self-hostable software
  - no phone-home
  - source-available
  - owned capability
---

# Software

**Tools, not platforms. Owned. Auditable. Boring. Code you can read and run yourself.**

A platform is something you rent and can't see inside. A tool is something you own and can read. The software I write is owned capability — it runs on your iron, on your terms, and it does one job you can verify by hand.

> **If you can't audit it, you don't own it — you're trusting it.**

---

## § 01 — Principles

Software earns its place by being small enough to read, plain enough to reason about, and quiet enough that you know everything it talks to. A tool that needs a license server, a telemetry endpoint, or a vendor's cloud to function isn't a tool you own. The constraints are the design.

**What every tool must be**

- **Small** — readable end to end in an afternoon.
- **Legible** — plain language, no clever indirection.
- **Silent** — no phone-home, no telemetry, no license check.
- **Auditable** — source you can read before you trust it.

**What that buys you**

- **Trust by inspection** — not by reputation.
- **Offline by default** — runs where the plant runs.
- **No dead-vendor risk** — it keeps working without me.
- **Ownership** — the point of the whole exercise.

---

## § 02 — What I build

The software follows the engagements. Each tool exists because a piece of the work needed it and nothing buyable would do the job without a subscription or a black box. These are categories, not a catalog.

| Categories | What each one is not |
| --- | --- |
| Visibility — read what's on the wire, locally | Not an agent that calls a cloud |
| Baseline — capture and diff the known-good state | Not a dashboard you rent by the seat |
| Design — turn an accumulated network into a drawn one | Not a scanner that needs a feed to work |
| Verification — prove a control is real, not asserted | Not a platform that grows until it owns the budget |

---

## § 03 — How it ships

How software reaches you is part of whether you own it. Proprietary binaries and hosted SaaS are dependence with a delivery mechanism. Source you can read, build, and run on your own iron is the only model that survives the vendor.

| Not this | This |
| --- | --- |
| Proprietary binary you can't inspect | Source-available, read before you run |
| Hosted SaaS that holds your data | Self-hostable on your own infrastructure |
| License server that can revoke you | No license check, no kill switch |
| Updates pushed without your knowledge | You decide when and whether to update |

---

## § 04 — Where this leads

A tool is only useful if it serves the work. Each link below is where this software shows up — in engagements, in the frameworks that structure them, and in the wider argument for industrial independence.

- [Practice](/practice/) — how the tools enter the work
- [Frameworks](/frameworks/) — the method the tools serve
- [SHIP Framework](/ship/) — networks designed, not accumulated
- [Industrial Independence Architecture](https://industrialindependence.org) — the fractal, at scale

---

*"Code earns its place by being small enough to read and quiet enough to trust."*

— River Caudle, Houston, Texas
