A screenshot of my Obsidian template repo's README.

Stumbling Into a Great AI Assistant

I’ve been managing engineering teams for a while now. One perennial challenge is the constant context switching. Paul Graham wasn’t kidding about the reality of manager schedules, and I spend all day bouncing between wildly different meetings. It’s a lot of little things to keep in working memory. If I don’t write it down, it disappears. Of course, if I do write it down it may still fall into the /dev/null of my Obsidian notebook. ...

February 19, 2026 · keith bourgoin
A man shaving a yak done in the Pointillism style

Collatz Part 2: Yak Shaving

A brief detour this week as I look into an alternate Collatz implementation. The first part of the series can be found here. The Collatz Conjecture Wikipedia page has an alternate formulation titled “as an abstract machine that computes in base two”. I have a computer. It’s a non-abstract machine that comptes in base two. Seemed like it could be fun. Making the Abstract Concrete The idea is pretty clever: Repeated applications of the Collatz function can be represented as an abstract machine that handles strings of bits. The machine will perform the following three steps on any odd number until only one 1 remains: ...

May 10, 2023 · keith
All Collatz sequences of a length inferior to 20

Exploring the Collatz Conjecture with Rust

I happened across a video about the Collatz Conjecture a couple months back and it seemed like a good way to continue learning Rust. The Conjecture is straightforward to implement, and optimizing it has led to some interesting places. I’m no mathmetician, nor do I think I can solve the conjecture, but it was a good bit of fun to explore. What is the Collatz Conjecture? The Collatz Conjecture is an unsolved problem in mathematics centered on a deceptively simple algorithm known as 3x+1. Given a number, if it’s odd, multiply it by 3 and add 1; If it’s even, divide by 2. In Python, that’s: ...

April 14, 2023 · keith
The Tower of Babel by Pieter Bruegel the Elder (1563)

The Language Wars Are Over: ChatGPT Won

When I started at Parse.ly, Python was our language of choice. It was fast to write and easy to read. It fit our brains well and it’s juuuust performant enough for a realtime analytics system. The choice was explicit: prioritize developer time and happiness over machine time and cost. ChatGPT and Github Copilot are upending that calculus. Over the next few years, developer unfriendly languages will become more appealing because LLMs will paper over the unpleasantness of actually writing code in them. The ergonomics and aesthetics of a language will take a backseat to performance, ease of deployment, and other concerns. ...

April 5, 2023 · keith bourgoin
my rack-mounted Unraid box in it’s not-standard-width cabinet

How I Set Up an Unraid Devbox

I’ve been using a Mac mini for personal projects lately, but I prefer developing on Linux. It’s closer to production, and I happen to know Linux internals better than MacOS internals. With some quality time on eBay, I recently built an Unraid homelab/media serverwith 24 cores, 32g of memory, and 20tb usable storage (i.e. not including parity disks). It seemed a perfect opportunity to set up a new devbox. I knew I wanted some sort of remotely accessible containerized environment. I’ve started using VSCode for Rust development, so I would need that to work too. Finally, static IPs are tedious, so mDNS support would be ideal. ...

March 31, 2023 · keith bourgoin