Skip to Content

Colophon

This site is built and served entirely on infrastructure I manage. Every layer — from the operating system to the browser — is my work.

Frontend

XHTML 1.0 Strict. Pure CSS. Zero JavaScript. Zero frameworks. Zero build tools.

Semantic markup, CSS custom properties for theming, responsive layout via media queries, SVG sprites for icons. Accessible (skip-to-content, alt text, keyboard navigation). If you're reading the source, you already noticed.

Web Server

Nginx (Alpine) serving static files from a Kubernetes Persistent Volume Claim.

Container Orchestration

K3s cluster — 3 nodes across dedicated servers. Longhorn provides replicated block storage with 3 replicas per volume. Traefik handles ingress routing and automated TLS certificate management via Let's Encrypt.

DNS

PowerDNS deployment with branded nameservers. One primary (API-driven) and two secondary servers for redundancy. Zone transfers automated via AXFR.

TLS

Automated certificate provisioning via Traefik + Let's Encrypt. HTTPS everywhere, HSTS headers, modern cipher suites.

Monitoring

Prometheus scrapes metrics from every node and service. Grafana dashboards for visualization. Alertmanager routes alerts to email and push notifications. 11 scrape targets, 5 dashboards, 7 alert rules.

Backup

Borg with encryption and deduplication. Daily automated backups across multiple datacenters. Push notifications on completion.

Mail

The email address on this site is served by a mail stack I built: Postfix, Dovecot, OpenDKIM, Sieve filtering, full-text search, compression, and automated archiving. Three domains, 37,000+ messages.

Operating Systems

8 servers across 4 countries running Debian, Ubuntu, and FreeBSD. All managed, patched, and monitored by one person.

The Point

Most personal sites run on a managed hosting provider. This one runs on infrastructure I designed, deployed, and maintain myself — the same skills I bring to any team I join.

If you're hiring and you've read this far, you already know I can build things. Let's talk.