Selected work
Wazuh decoders, detection rules and field notes for monitoring Talos Linux and Kubernetes nodes over syslog, where no agent can be installed. Built against live production traffic, including the parsing traps that make decoders fail without an error.
- 30decoders
- 32rules
- 11MITRE techniques
- 13documented gotchas
Read the code and notes on GitHub
Practical playbooks for running Wazuh 4.14 in production: a custom VirusTotal IP lookup on FortiGate alerts, SentinelOne threat ingestion, custom rules and decoders, and CDB lists for IOC matching. Configs are pulled from a live manager by a redaction script, and every push runs CI checks for valid XML and JSON, rule ID collisions and leaked secrets across the full history.
- 4playbooks
- 5CI checks per push
- 4.14Wazuh version
Read the playbooks on GitHub
An n8n workflow that turns a security news link posted in Slack into a client-ready threat advisory. It scrapes the article past redirects and bot walls, drafts a structured CTI analysis with an LLM, extracts severity, CVSS and CVEs, and posts a styled HTML report back into the thread. Analysts review and send instead of writing from scratch.
- 1link in
- 11workflow nodes
- 8report sections
- 4page HTML advisory
See the workflow on GitHub
An n8n workflow that automates SOC shift handovers. One Slack command reads the client's alert log from a SharePoint workbook through Microsoft Graph, dedupes and counts alerts by source, severity and status, then posts the full handover to the SOC's Slack channel and a client-facing summary to Microsoft Teams. The incoming shift is tagged automatically.
- 1Slack command
- 12workflow nodes
- 2channels: Slack and Teams
- 0secrets in the workflow
See the workflow on GitHub
Internal tools I built