agentic coding · LLM tooling · production-grade infrastructure

Engineering leverage through agents.

Daily-driver coding agents, LLM-assisted systems, and the boring infrastructure habits that keep both honest. Industrial software background — SCADA, telemetry, edge + cloud — shows up in the engineering posture, not the framing.

industrial software background SCADA / telemetry / operations edge + cloud systems AI-enabled engineering
workbench

AI-first, infrastructure-honest.

AI as engineering leverage

The agent does the typing; the human keeps judgment. Plans before code. Tests before claims of done.

Plans firstPhase plans written and reviewed before any code is touched; deviations explained, not silently absorbed.
Local + hosted LLMsHosted models for heavy reasoning; local models for private drafts and offline-friendly assistants.
Safety hooksDestructive shell blocked at the tool boundary, secret files gated, tests-pass required before any "done" claim.
Custom toolingClaude Code with project-specific agents, skills, and a hook layer kept under version control.

Infrastructure that keeps agents honest

Production habits give agent work somewhere safe to land.

SignalsGrafana, Loki, TimescaleDB on a Tailscale-private network — observe before you optimise.
BoundariesPublic surface is small and deliberate; operational services stay internal, never publicly inventoried.
HabitsSecrets in a managed vault, deployments boring on purpose, rollback as a first-class option.
built with agents

Projects, with the agent's role declared.

HA integration for proprietary lighting hardware

Custom Home Assistant integration for the Theben LUXORliving IP1 cover/shutter controller. Local-push, HACS-installable, with a real config flow and 208 regression tests instead of the usual "works on my setup" script.

Stack: Python, Home Assistant custom-component framework, HACS custom repo Agent role: Boilerplate scaffolding, edge-case enumeration (token-cookie auth, fail-closed metadata, duplicate-setup prevention), test fixtures. Human-owned: protocol reverse-engineering, public-API stance. Outcome: Stable local integration, fail-closed on malformed metadata, supports both anonymous and authenticated controllers. View repo →

Deal watcher with deterministic + LLM scoring

Local agent that polls a German marketplace for specific deal patterns (e.g. cheap gaming PCs under a price ceiling) and pushes scored notifications. Deterministic scoring first; LLM only where the signal needs nuance.

Stack: Python, SQLite state, ntfy push, optional LLM stage Agent role: Polling and scoring scaffold, config schema, notification pipeline. Human-owned: explicit anti-pattern stance — no login automation, no captcha evasion, no rate-limit games. Outcome: Dry-run mode by default, CLI-first, scoring rules transparent and changeable without prompt engineering.

Tailscale-private development + telemetry cloud

A self-hosted services hub on a single Tailscale host: telemetry, monitoring, identity, secrets, docs, CI. No public exposure, no vendor lock, everything reachable only on the tailnet — internal DNS only, no public records.

Stack: Docker Compose, Tailscale, TimescaleDB, Redis, MQTT, Vector, MinIO, Authentik, Infisical, Grafana + Loki, self-hosted GitHub Actions runner Agent role: Compose-stack scaffolding, service-config patching, runbook drafting, plan-driven rollouts. Human-owned: service selection, exposure boundaries, every credential decision. Outcome: ~20 services running on a private tailnet, central SSO, secrets centralised, no service publicly reachable.

Milestack — non-custodial milestone escrow on Base

A milestone-based escrow protocol for digital work, funded in USDC on Base. Smart contracts enforce payout rules; no platform custody, no marketplace overhead. Solidity contracts plus a typed TS backend and a Next.js frontend, all under one repo.

Stack: Solidity, Foundry, Slither, TypeScript backend, Next.js frontend, Playwright Agent role: Phase-by-phase plan execution, contract scaffolding, exhaustive test cases (fuzz + invariant), CI workflow design across 4 surfaces. Human-owned: protocol design, security posture, every dispute-resolution rule. Outcome: One escrow per deal, sequential milestones, named-arbiter dispute path, timeout-based seller-claim. Slither + Foundry tests green on every push. View repo →
notes

Field notes.

Three pieces that form one loop: how to observe systems honestly, where agents need boundaries, and how to show technical signal without publishing operational surfaces.