Projects

Things I have built, mostly around networking and infrastructure. Patches I have sent to other people's projects are on the open source page.

xdp-bfd

  • C
  • XDP
  • eBPF
  • libbpf
  • FRRouting
  • Replies are sent from XDP by rewriting the peer’s own packet, so they keep going even when userspace gets no CPU at all.
  • Under SCHED_FIFO stress that made FRR bfdd flap nonstop with 960ms gaps, xdp-bfd had 0 flaps and a 12.5ms worst gap.
  • On bare metal, it held 1022 sessions with 0 flaps through the real-time stress that made stock bfdd flap 18,910 times, with the engine on a SCHED_DEADLINE reservation so no real-time priority can starve it.
  • Works as the data plane for an unmodified FRR bfdd, so normal FRR config and show commands keep working.
  • 1024 sessions by default and up to 8192, at 6.2% of a core for 4096 sessions with 0 flaps.
  • IPv4 and IPv6, single-hop and multihop, echo, demand mode, and keyed SHA1 auth computed inside XDP.
  • Hitless restarts and upgrades: the engine hands its sessions to a new process with 0 flaps across 1024 sessions. Ships as Debian and RPM packages that run without root.

Self-hosted infrastructure

  • Proxmox VE
  • ZFS
  • iSCSI
  • OPNsense
  • NGINX
  • Docker
  • Local ZFS on each node plus a shared multi-terabyte volume group on external block storage, reached over four independent iSCSI paths with ALUA multipathing, so guests can live migrate between nodes.
  • OPNsense at the edge routes five separate segments with tagged VLANs on top, enforcing around 100 firewall rules and terminating WireGuard.
  • One containerized NGINX reverse proxy fronts more than 30 services with per-service vhosts, TLS 1.2 and 1.3 only, and Let’s Encrypt certificates renewed through DNS validation.
  • The proxy runs a custom NGINX build carrying the JWT authentication module I contribute to upstream, with geo and map blocks deciding per request whether authentication applies.
  • Layered DNS: separate internal and public Pi-hole instances behind three dnsdist frontends, two DNS-over-HTTPS endpoints, DNS-over-TLS through stunnel, and unbound for recursive resolution.
  • Around 25 workloads in production, including Matrix Synapse with coturn, a full Mailcow stack, Immich, Vaultwarden, Guacamole, and this site.

Campus IPv6 deployment

  • IPv6
  • DHCPv6
  • SLAAC
  • FreeBSD
  • Led a dual-stack rollout (SLAAC and DHCPv6) across campus VLANs, starting with production use in a hostel.
  • Configured DHCPv6 snooping and IPv6 firewall rules to block unauthorized addresses and isolate internal networks.
  • Diagnosed and mitigated rogue RA flooding using port-based RA filtering and strict ACLs.
  • Resolved Android SLAAC and DNS failures by adjusting prefix allocation and RDNSS advertisements.

Staging-Server

  • Django
  • Docker
  • NGINX
  • xterm.js
  • Dynamic subdomains with automated NGINX configuration per deployment.
  • Support for volumes, environment variables, and auxiliary services such as Redis and Celery.
  • Real-time log viewer, browser-based terminal, and lifecycle controls with scripting hooks.

ngx-http-auth-jwt-gateway

  • NGINX
  • Node.js
  • Google OAuth
  • Docker
  • Secures internal dashboards and self-hosted services behind Google OAuth 2.0 and signed JWTs.
  • Group-based access control, multiple JWT cookies, dynamic claims, and role-specific flows.
  • Return-URL preservation, session persistence, and hardened cookie policies across subdomains.