Warning
I have moved to CodeBerg. All new updates and projects will happen there.
I like the parts of software where breaking something on purpose teaches you more than the documentation does. That's what pulled me from application development into CI/CD and security tooling: pipelines fail in interesting ways, and SIEM dashboards only get better once you've watched a real detection rule miss something.
Right now I'm a working student at a security consultancy, running GitLab pipelines across roughly 50β70 pull requests a day and building out dashboards in Google SecOps (Chronicle). Before that I spent three years as a software development apprentice, writing EDI interfaces in Java and helping build an internal server monitoring setup from scratch. I also hold Google's Cybersecurity Professional Certificate, covering SIEM tooling, IDS, and the NIST Cybersecurity Framework.
Tessera is an entry-monitoring and access-control system I'm building: QR-code admission cards, a mobile scanner, role-based permissions (Owner, Event Admin, Scanner), dual authentication, and duplicate-scan protection. It runs in production behind systemd and Caddy as a TLS reverse proxy.
I've also merged 18 pull requests across open-source repositories, including 6 in NixOS/nixpkgs, where I maintain the stoat-desktop package, plus a handful of additions to european-alternatives.
At home I run a self-hosted Wazuh SIEM across my network β log aggregation, file integrity monitoring, intrusion detection, and a growing set of custom detection rules and dashboards.
Public Key
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaX9o0RYJKwYBBAHaRw8BAQdA9/00+ug5Cy0Q05wZs70VuZ00qgmNtWIYa68J
ocdE8by0IW1haWxAdjNybTFuLmRldiA8bWFpbEB2M3JtMW4uZGV2PojRBBMWCgCD
BYJpf2jRAwsJBwkQBKRlBRUWFZtFFAAAAAAAHAAgc2FsdEBub3RhdGlvbnMub3Bl
bnBncGpzLm9yZ/0aK6hkkUqDM0t597yUiejUoRl/wUVnRgbWwH14U6q0AxUKCAQW
AAIBAhkBApsDAh4BFiEEawUiII/aOLdku2c1BKRlBRUWFZsAAK1NAQDzLmkZUsUU
KMdCz7Okvs3jPmTkNEeOLNwo3Qbq/YpbuwD/TLAuLe9E09viiqAN1YNrZqRwxUks
chMn7BkoE+j9ywa4OARpf2jREgorBgEEAZdVAQUBAQdAqTm2bjwpfhmnPn1cN0HD
b3GI8ZwLDcnaXhhezXLyZ2sDAQgHiL4EGBYKAHAFgml/aNEJEASkZQUVFhWbRRQA
AAAAABwAIHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmfIdryNYx1sAQt0o0gD
fHHyY893wVt7wis+VTta0UWplQKbDBYhBGsFIiCP2ji3ZLtnNQSkZQUVFhWbAADq
zAD+N8V+JSuJQRBI3+l8/NhZiS9iqSIt6C5hyK0PQAy406EBAPWHfIzBqO9bsGD4
TlHwTsm8KypShX+C/Dawkg4wls0O
=AzsG
-----END PGP PUBLIC KEY BLOCK-----


