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 separates what is verified, what is risky, and what remains unproven.
A ChatGPT-facing surface for evidence-first repository and operational verification workflows.
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.
A ChatGPT plugin surface for OneClick Website Design Factory workflows.
My upstream work spans developer tooling, test infrastructure, security hardening, SDKs, frontend UX, realtime systems, documentation and agent workflows.
- numbas/Numbas #1186 - Avoid duplicate score feedback.
- PostHog/posthog-js #4604 - Support bare React Native Hermes sourcemaps with deterministic chunk IDs.
- StudentSuite/StudyMap #189 - Validate suggested-place links and preserve user input.
- StudentSuite/StudyMap #187 - Harden the service-worker cache lifecycle.
- StudentSuite/StudyMap #186 - Sanitize authentication redirect targets.
- StudentSuite/StudyMap #185 - Gate unit tests in CI and add data-freshness checks.
- reticlehq/reticle #485 - Harden the dirty-anchor benchmark regression harness.
- reticlehq/reticle #474 - Pin destructive benchmark refusal behaviour in CI.
- eddiejaoude/CodeReel #26 - Toggle playback directly from the preview canvas.
- eddiejaoude/CodeReel #16 - Add Playwright end-to-end coverage.
- element-hq/element-admin #599 - Fix scheduled room-deletion timestamp display.
- eddiejaoude/CodeReel #35 - Make the editor responsive on mobile screens.
- vercel/sandbox #314 - Reject multiple list tag filters in the CLI.
- supabase/phoenix #55 - Backport a Phoenix security dependency refresh.
- supabase/phoenix #53 - Clear stale heartbeat state on reconnect.
- grafana/alerting #654 - Support a custom Telegram Bot API base URL.
- getsentry/sentry #122436 - Normalize multiline issue-title links in Slack.
- Meulah/framework #2 - RFC to restrict Opia v1 dot access to arrays.
- eddiejaoude/ai-prompts #13 - Local-first verification CLI prompt.
- eddiejaoude/ai-prompts #12 - Production agent operating-files prompt.
- eddiejaoude/ai-prompts #11 - Read-only production reconnaissance prompt.
- eddiejaoude/ai-prompts #10 - Capability-gap learning-system prompt.
- eddiejaoude/ai-prompts #9 - Self-identifying product campaign prompt.
- eddiejaoude/ai-prompts #8 - Autonomous coding-workflow prompt.
- eddiejaoude/ai-prompts #7 - Deterministic social-publication pipeline prompt.
- eddiejaoude/ai-prompts #6 - Continuous business-operations graph prompt.
- eddiejaoude/ai-prompts #5 - Evidence-first live diagnostic and repair prompt.
- eddiejaoude/ai-prompts #4 - Signed agent-action receipts prompt.
- eddiejaoude/ai-prompts #3 - Graph-native agent-system migration prompt.
Earlier submitted upstream engineering PRs
- pydantic/pydantic-ai-harness #682 - Stream summary requests in
SummarizingCompaction.
- 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
- Security hardening and production-readiness verification
- 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



