Software engineer building reliable agentic systems, developer tooling, automation, and production software.
I work mainly with TypeScript and Node.js at the boundary between AI-assisted engineering and deterministic systems. My focus is making agent workflows observable, verifiable, recoverable, and safe enough to run without constant supervision.
I care about evidence over optimistic status, explicit permission boundaries, idempotent execution, failure recovery, and small changes that are easy to review.
Self-hosted specialist orchestration for OpenClaw with governed task execution, approvals, durable state, runtime visibility, and auditable operational workflows.
A read-only, stack-aware CLI for AI-assisted engineering that inspects repositories, runs safe probes, and reports what was verified, what looks risky, and what remains unknown.
Versioned, evidence-driven workflows for coding agents covering repository inspection, route tracing, environment mapping, secret auditing, deployment preflight, runtime truth, and verification.
A TypeScript system for authorised repository changes with exactly-once execution, deterministic recovery, independent verification, and signed receipts.
A multi-tenant SaaS for turning county parcel and tax-lien data into structured investment decisions, with authenticated workflows, explainable scoring, approvals, collaboration, and operational review surfaces.
Recent merged contributions:
- Reticle #474 — Added regression coverage for a destructive benchmark safety guard, exercising the real CLI in an isolated Git repository.
- Reticle #485 — Hardened the benchmark test harness for hermetic Git execution and cross-platform reliability.
- StudyMap #185 — Added unit-test CI gating and deterministic scheduled data-freshness verification.
- StudyMap #186 — Hardened authentication redirects against off-site navigation with shared sanitization and adversarial tests.
- StudyMap #187 — Hardened service-worker cache lifecycle, cache ownership, deployment versioning, and concurrent tile-cache limits.
- Agent orchestration and autonomous workflows
- Verification, observability, and operational reliability
- TypeScript and Node.js systems
- Deterministic workflow engines and recovery
- Developer tooling and test infrastructure
- Product engineering and production automation
- Let models handle judgement and ambiguity; let deterministic code own state and execution.
- Treat external effects as unverified until independently observed.
- Preserve failure evidence instead of smoothing it into a green status.
- Make permission and approval boundaries explicit.
- Prefer boring, reviewable, reliable code over clever abstractions.
Based in Northampton, UK.
- Website: tailwaggingwebdesign.com
- X: @Woeinvests
- LinkedIn: John Haastrup



