I'm a Software Engineer living in Little Rock, Arkansas working in Advertising Technology. At work, I deal with big data processing and distributed systems. At home I spend time antiquing, cooking, gardening, traveling, hiking, and cycling.
You can find me on IRC as cptaffe
on several networks including Libera on #connor.zip
and #cyberpals
, Ergo, OFTC, and SlashNET on #vc
. If you are an Arkansas resident I would encourage you to join the tiny community on barefoot. You can also find me as @cptaffe
on X; or via email.
The Blog
This blog is mostly about the computer work I do in my free time. It started after I built the nth generation of a telephone system at home using Twilio SIP trunking, Asterisk on an HP DL380 G6, a Digium T1 PCI card, an Adit 600 channel bank, a Lucent PortMaster 2 digital modem bank, a few antique Western Electric rotary phones, a Cisco SIP phone, Hayes modem, and IBM 3151 terminal. I wanted a place to write down all the things I learned building that system. This is still incomplete, but I've jotted some notes down.
I wanted to self-host it, in the spirit of the early Internet. I use a Kubernetes cluster across a couple of ESXi VMs created with kubeadm
and Calico for networking. I use HAProxy on pfSense, which is updated automatically by kubernetes-pfsense-controller
, along with Traefik as an ingress controller and MetalLB as the load balancer provider which also handles BGP. By configuring pfSense to relay *.k8s.home.arpa
DNS requests to Kubernetes' DNS server, I'm able to both route and use service names like blog.default.svc.k8s.home.arpa
across my home network.
The software that runs this blog is a Go program which utilizes goldmark
along with a custom grpahviz
extension and a fork of accept-headers
which properly handles multiple Accept
header lines as used in old browsers like MacWeb or NCSA Mosaic. Through writing it, I've been able to learn about and implement RSS and Atom feeds, use HTML5 XML pages, as well as provide XML and JSON interfaces (just pass the correct Accept
or ?format=
) and provide XSLT stylesheets for any XML pages. Although it may be in the future, it currently is not a static site. Each request reprocesses the relevant markdown source files, renders diagrams with graphviz
, etc.