I build operations tooling for containerized infrastructure, networking, and DNS. I also build AI agents that carry out that kind of work themselves, with supervised autonomy enforced by the system rather than requested in a prompt.
Each closes a specific gap in the platform underneath it: Tailscale, pfSense, Portainer, Docker, TruffleHog.
Adds a named set of blocks to a Tailscale access policy file and later removes exactly those blocks, leaving the rest of the file byte-identical, comments and formatting included. That lets a project provision the grants, SSH rules, and tag owners it needs on a tailnet somebody else owns, then take them back out, instead of taking over the whole policy file the way existing tools do.
Stack: PHP · Shell · FreeBSD ports
Brings encrypted DNS (DNSCrypt, DoH, Oblivious DoH, Anonymized DNS) to pfSense firewalls with a full management GUI. Signature-verified builds with SLSA provenance for supply-chain assurance.
Stack: Shell · Docker · Portainer API
Backs up, restores, and migrates Portainer stacks as plain, version-controllable Docker Compose files. Supports GitOps workflows, disaster recovery, and environment migration without all-or-nothing database snapshots.
Monitors container images across one or many hosts and drives controlled, health-aware updates: semver-aware classification, one-click upgrades with live console output, and notifications via Slack, Discord, Telegram, SMTP, and webhooks. On-demand AI analysis summarizes what changed between your current and target version and flags breaking changes before you upgrade.
Stack: Terraform · AWS · Tailscale · Python
Deploys a Tailscale subnet router and a private, SSH-enabled node into a new AWS VPC. The private node has no public IP address, no SSH key, and no inbound security group rule, so the tailnet is the only way to reach it. Route approval is code too: the tailnet policy approves the VPC CIDR for anything carrying the router's tag, so the route is live the moment the router registers and nobody clicks anything.
Stack: Python · FastAPI · PostgreSQL · Docker
Turns point-in-time TruffleHog scans into a tracked remediation workflow, deduplicating findings into unique secrets and the instances where each one appears. Remediation status is derived from scan history rather than stored and mutated, so it cannot drift out of sync: an instance resolves when the newest scan of its repository no longer contains it, and reopens the moment it comes back.
Security agents that run an operation end to end: alert investigation and response, and full internal red-team campaigns.
stiletto
Stack: Python · LangGraph · Claude · FastAPI · Pydantic · Docker · LangSmith
Red-teaming AI agent that runs a full pentest campaign, from recon through exploitation, lateral movement, and persistence to a ranked report, with the model reasoning but never touching the network. A LangGraph state machine owns scope and runs every tool behind a fail-closed scope guard that denies by default. Approval gates are checkpointed graph interrupts the model cannot skip, cleared by the operator from a live web console that streams tool activity in real time. Every phase is MITRE ATT&CK-aligned with audit trails in LangSmith. Source is private; demo available on request.
sentinel
Stack: Python · LangGraph · claude-agent-sdk · FastAPI · Playwright · Docker · LangSmith
SecOps AI agent that investigates security alerts read-only and pauses for explicit human approval before executing any remediation. The gate is structural rather than prompted: LangGraph's plan/act/reflect loop routes the only path to a state-changing action through a human decision, and capability-separated tool policy keeps write actions physically out of reach during investigation. A headline eval proves no remediation runs before approval. The agent drives a Dockerized Playwright browser through a mock SOC console.
I treat the pipeline as part of the product. Practices I apply across my projects and contributions:
- Default-deny GitHub Actions permissions (
permissions: {}), with each job opting back into the least scope it needs. - Third-party actions pinned to commit SHAs rather than mutable tags, to close supply-chain gaps.
- Layered scanning: secret detection (gitleaks), workflow auditing (actionlint, zizmor), dependency review, Dockerfile and image scanning (hadolint, Trivy), and CodeQL static analysis.
- Signed, attested release artifacts (SLSA provenance) so downstream users can verify what they install.
Home Assistant · odysseus · Deluge · WUD · ImmichFrame
Agentic AI systems · Human-in-the-loop autonomy · LLM tooling & evals · AI-driven security analysis & response · Container operations · Encrypted DNS · CI/CD supply-chain security




