Index Condition Pushdown Optimization in MySQL

Big Idea Getting under the hood of database implementations is starting to become an area of growing interest to me. Early in my career I was always content with SQL as an interface to datastore that ‘just works’. That is, until it doesn’t anymore. It’s at those points that I am now being pushed to understand why a particular database implementation has particular behaviour charatersitics in different circumstances. Further, I have never crossed-paths with a professional DBA and oftentimes feel left like there’s a whole sphere of mystery for me here....

June 2, 2025 · 2 min

An Introduction to Async Programming in Python

Big Idea In this post I want to capture some introductory notes to async programming in Python. I want to capture the motivation for async programming, some examples of how async implemented in Python via the high-level apis of Python’s stdlib async programming module: asyncio, and finally I want to explore the mechanics of the event loop which enable async programming. Motivation: The Problem of IO Bound Programs The goal of Python’s asyncio is module is improving the efficieny of IO bound programs....

May 3, 2025 · 4 min

Making my K8s Control Plane HA

Big Idea For a while the K8s cluster in my homelab has been in the precarious situation of only having a single master node. This has bitten me a couple of times when the master node (i.e the “server node” in k3s) has been snafu’ed. Now that I have compute available on my proxmox server, I want to take the time to virtualize two additional master nodes. Doing this will require understanding a few things at the outset:...

February 23, 2025 · 3 min

Tenets of Engineering

Big Idea I am getting to the stage of my career now where I have started picking up guiding principles that guide my socio-technical endeavors. I am sure I will continue to learn more and add them here or come back revise these with more wisdom and insight but what I want to start here is a collection of tenets. These tenets are not implementation details or design patterns but are more like paradigms for how we relate to problems, the natural systems that emerge from people thrown into teams, and more....

February 6, 2025 · 2 min

TrueNAS Backups & Restore with B2

Big Idea The goal of this post will be to capture the steps required for the backup and restore process of my TrueNAS server. Currenty, my TrueNAS server consists of two 4TB drives in a vdev with a RAID1 (Mirror) config. My goal is to back this up to Backblaze’s S3-compatible B2 storage and test recovery before migrating data out of my old 1TB SSD. Once I have these backups in places the 3-2-1 rule will be satisfied:...

January 23, 2025 · 6 min

Visual: URL Shortener

Big Idea I have been studying more systems desing more intentionally lately and this is the fruit of one evening of diagramming out a URL Shortner design. This post doesn’t explain much but a picture’s worth a thousand words!

January 13, 2025 · 1 min

Distributed Concensus: Raft

Big Idea With the addition of a Proxmox server to my homelab I have been planning to scale out the control plane of my k3s cluster by virtualizing an additional two master nodes for a HA set up. I was aware that this would involve replicated state in my etcd backed control plane and that etcd itself relies on the Raft concensus algorithm. For this reason, I decided to take a deeper dive into the inner workings of Raft....

January 12, 2025 · 5 min

ZFS: A Primer

Big Idea Zettabit File System (ZFS) is a file system that is very popular in the Homelab community for it’s powerful capabilities as a file system and volume manager. It is designed to ensure data integrity and scalbility. While I am not an expert in ZFS, I hope to create guide here that outlines some of the fundamantal concepts of ZFS that I can return to over time. ZFS has a few key features that I will outline here:...

January 5, 2025 · 5 min

Dependency Injection In Go

Big Idea Dependency Injection (the ‘D’ in SOLID design principles) is an important practice in good software architecture. When used well, it decouples a class’s dependency on a certain interface from any one particular implementation of that dependency. This means that any class which implements the common interface of the dependency can be injected into the class at runtime for easy configuration. This is especially helpful when it comes to creating stubs for mocking when writing unit tests....

September 7, 2024 · 3 min

Intro to K8s Autoscaling

Big Idea Autoscaling is a key technology that builds on the elasticity of distributed cloud computing. To understand autoscaling in the Kubernetes environment, it will be important to understand the basic enabling technologies: containerization and distributed computing. By leveraging hese two technologies, Kubernetes supports horizontal pod autoscaling (hpa) and cluster autoscaling. In this post I will dive into some brief background on Containerization and distributed computing (just enough to be dangerous) and then take a more focused look at the horizontal autoscaling functionality of Kubernetes....

September 6, 2024 · 13 min