Security engineering director by day, self-hoster by night. I build the tooling I wish existed for the infrastructure I actually run, and I hold it to the bar I'd expect at work: tests, signed releases, written decisions.
- compose-lint is a security linter for Docker Compose files, grounded in OWASP and the CIS Docker Benchmark. It has SARIF output, a GitHub Action and a dry-run auto-fix. Every release is cosign-signed and traceable to the CI run that built it, and security advisories are published on GitHub. It is backed by a study of 11,000 public Compose files: 9 in 10 skip the basic security flags.
- advisory-review-lag measures how long a security fix takes to reach the GitHub Advisory Database, which is where Dependabot alerts come from. Across 14,173 advisories, the median wait was 1 to 5 days for fixes released through March 2026 and 37 to 42 days for fixes released in June and July 2026. The write-up is The fix ships weeks before your scanner knows.
- lyngvi is a hardened container for a coding agent that holds real, scoped credentials. The agent can push branches and open pull requests. It cannot merge to a protected branch, reach the host or leave its egress allowlist, and each of those limits is enforced by something outside the agent's reach.
- container-sec-derive is a runtime observation tool (Go, eBPF via Inspektor Gadget). It watches a container run and derives the minimum security config the container needs: capabilities, read-only filesystem and devices.
- container-security-profiles is a set of least-privilege profiles for common self-hosted images. Each one comes with drop-test proof that the image still works.
- ig-advise-gadgets is a set of Inspektor Gadget advisor gadgets that derive capabilities, read-only rootfs and device grants from live eBPF observation.
- Wrote the Compose-file scanner list (Rule 9) in the OWASP Docker Security Cheat Sheet.
- Writing: dev.to/tmatens · Docs: tmatens.github.io/compose-lint
These are personal projects and personal views. They are not affiliated with my employer.




