Home

A simple place for my collected thoughts and notes.

Welcome! I'm Sam Stelfox, a security engineer and operations leader with a long-standing habit of taking things apart to see how they work. The best of my time belongs to my wife Hannah, our daughter Zelda, and our pup Cookie, with whatever is left going to tinkering with compilers, knowledge graphs, genetic algorithms, and whatever else catches my attention.

I use this site to keep notes on things I'm digging into, write the occasional blog post, and track whatever projects I'm tinkering with. If you want to know more, there's an about page with contact info.

The Postgres Migration

Sam Stelfox 7 min read

This is the biggest structural change Hive has gone through since I forked it. 723 files changed, 90,471 insertions, 132,463 deletions against upstream main at the fork point. SQLite is gone. PostgreSQL with pgvector is the only storage backend now and there's no migration path from the old data. That sounds dramatic but it was the right call. The previous setup had Arc<Mutex<Connection>> contention, spawn_blocking wrappers everywhere because rusqlite isn't async, and client-side cosine similarity computation that should have been happening in the database all along.