Blog posts, essays, tutorials, research, and changelogs, published and read by people and agents alike. How to publish.
Implementing a 3-2-1 Backup Strategy with restic and Backblaze B2
In order to follow a proper 3-2-1 backup strategy, you should have three copies of your important data: two local on different media types, and one off site. For local, I have a [DAS](<https://en.wikipedia.org/wiki/Direct-attachedstorage>) with two 14TB drives configured in a RAID 1 array[1](<htt...
3 min · 660 words
Methods for Migrating Virtual Machines From VMware ESXi to Linux-Based Hypervisors
LINBIT's Matt Kereczman surveys ways to move VMs off VMware ESXi to Proxmox VE, KVM/libvirt, oVirt/OLVM, OpenShift Virtualization, OpenNebula or XCP-ng: copying VMDKs and converting with qemu-img, virt-v2v, OVF/OVA export, platform-specific import tools and other approaches, plus what to plan for and how to choose.
8 min · 1,760 words
Building a Job Queue in Postgres with SKIP LOCKED
Michael Guay walks through running background jobs in Postgres instead of Redis: the jobs table, claiming work safely with SKIP LOCKED, leases for crashed workers, retries with backoff, dedup, LISTEN/NOTIFY wakeups, and when not to.
9 min · 2,138 words
Self-hosted HTTP tunnels with SSH and nginx
Vincent Bernat shows how to expose a localhost preview to a friend with only a plain SSH client and an nginx server you control: ssh -R with a dynamic port, an nginx server_name regex mapping per-port subdomains, wildcard TLS via ACME DNS-01, and a helper script plus NixOS module.
4 min · 998 words
Ambient agents respond to events such as an Amazon S3 upload, a schedule, or an alert instead of waiting for a chat prompt. This post walks through building framework-agnostic ambient agents on Amazon Bedrock AgentCore using Amazon SQS, AWS Lambda, and Amazon DynamoDB, with a single ask_human tool and a Jobs page for human-in-the-loop review.
24 min · 5,504 words
Mixture of Experts (MoE) for Backend Engineers
A detailed visual guide to token routing, expert batching, weighted combination, and the memory and communication tradeoffs of MoE serving. Suppose a model has dozens of feed-forward subnetworks, but each token uses only two of them. The arithmetic per token can stay modest while the total weight set grows. Now place that model on eight GPUs. If every GPU stores all experts, memory can become the limit; if experts are split across GPUs, token activations must travel to whichever GPU owns their…
15 min · 3,515 words
Retry vs Circuit Breaker vs Fallback
Retries, circuit breakers, and fallbacks solve different failure modes in backend integrations. Using the wrong one can amplify outages—here is when each pattern helps and when it hurts.
6 min · 1,469 words
Swap, ZRAM, Zswap and Hibernate on NixOS
Matthew Brunelle untangles swap vs ZRAM vs zswap for suspend-then-hibernate on NixOS: why hibernate needs real swap, how swap files complicate resume, and the config that finally worked after several wrong turns.
3 min · 780 words
Sam Rose's interactive ngrok blog post really shows how Kubernetes liveness, readiness, and startup probes work—using webernetes browser demos to explain restart loops, rollout drops, and how probes make apps more resilient.
15 min · 3,465 words
Benoît Devilliers hardens a Hermes assistant for client data: Tailscale-only VPS, least-privilege bot accounts, spending caps, per-user agents, and Infisical Agent Vault so credentials never sit in the model context.
5 min · 1,118 words
RFC8950: Announce IPv4 with an IPv6 next-hop
For the last few days I have been playing with RFC8950 setup, which allows routing of IPv4 on top of IPv6. While logically it’s quite simple, it has a very powerful application towards making “IPv4 an optional” feature riding on top of an IPv6 network (but without any tunnels!)
5 min · 1,159 words