Edit on GitHub

# Bare Metal Kubernetes with Tailscale

For my most recent side project tailsk8s, I've been hacking on a bare metal Kubernetes cluster that uses Tailscale for networking. I had a lot of fun and learned a lot, but the TL;DR is that each Kubernetes node is a Tailscale subnet router and uses the kubenet CNI …

Edit on GitHub

# Remodeling the House While Living in It

### Minor Mismatch

When using a database in an application, there are many ways the idioms from the database ecosystem can disagree with the idioms in the programming language used to write the application. The object-relational impedance mismatch is one such example of this, but that is mostly about differences between …

Edit on GitHub

# What Is a Milestone Migration and Why Do I Care?

### Motivation

Over time an application becomes a living thing. When operating a running service, it's crucial to not only ask the question

Does the code being deployed work?

Can I safely deploy this change given the currently running version of my service?

This second question …

Edit on GitHub

# The Case for a Metadata Table for Database Migrations

### Motivation

As features are added, changed or deleted, the data model used by an application usually changes as well. For most database-backed applications, this means migrations are needed.

With this in mind, the fundamental goal of database migrations:

The current database schema should match the currently running code.

However, achieving …

Edit on GitHub

# When Elementary Becomes Elliptic

I enjoy watching math videos targeted at advanced high school or undergraduate students — even if the topics are far away from research level mathematics. I was recently watching a "quick and easy challenge in algebra" video from SyberMath1 that used a neat trick to solve the problem. As the …