This week I unboxed a GitLab laptop and started setting it up. The last time I handled a work laptop, I was packing one up. That was my Elastic laptop, on December 15, 2023, and I wrote a short post about it.
That post is still up. I said I would probably be bored to death and looking for a job before long, that I was giving myself 2024 to knock out the things I had been putting off, and that this blog would chronicle what I did with the break.
The break ran almost three years. I am joining GitLab as a Principal Product Manager working on engineering intelligence and insights. Before the new laptop takes over my days, here is what the break actually turned into, in the order it happened. This post is by no means exhaustive, but it captures some of the highlights.
2024: Chores and Cameras
The original plan was mostly chores I had been avoiding, plus getting back to the hobbies I had let slide. The cameras came first. In February I moved off SLRs to the Canon mirrorless system, and a couple of months later I retired a decades-old tripod for carbon fiber. March was photo hunts: one trip that did not work out at all, then Nisqually, Chambers Creek and Lake Kapowsin. I also added to the modular rack and found a color sensor that matches paint to just about anything.

The chores fought back more. I put fifty trees into Graham’s rock collection, which is what planting anything here actually means. And in May, Draco grew up, which is the one thing on this whole list I would have been sorry to miss.
The wildlife pond took two tries. V1 went in in June, and by July it had a temperature sensor and a dashboard. In September one mole chewed through the liner and drained it, and I spent that morning moving very confused goldfish into a Walmart aquarium. A week later V2 started with a thicker liner, an under-liner, cinderblock walls, and enough depth that raccoons cannot walk around in it. It was finished by the end of the month.

Late summer was rocks. Four yards of it showed up and became a rock wall two days later, which meant Blackberry Hill was finally done. I also went back to a gas zero-turn after assuming I would go electric. The shop turned out shelves for Kim’s kitchen plants, potato furniture and an end table that stores a camera.
2024: The Homelab Stopped Being a Hobby
Home automation started because I am bad at turning off lights. In 2024 it turned into infrastructure. The small pieces came first: Kasa instead of Hue, seismic data because everyone asks me about Rainier, a Rainier timelapse off the Synology, USB power off a light switch, and a software-defined radio to figure out what was setting off the driveway sensor.
Then the hardware. The patchwork of consumer switches got replaced with Cisco in June. Frigate got its own server in July, which meant Tower 1 was out of space, and in August it got a Coral TPU. My main machine got an RTX 4090 for model work.
The one that mattered most was the cheapest. A rat rod Ollama server built out of leftover GPUs is the machine almost everything after this runs on.
In October the house network hit 10Gbps, but the link to the shop still would not, so in December I spent my birthday digging a trench for fiber. A few days later the shop hardware moved into a studio rack I was not using.

The tools side of the original goals got its own update in October, which is where my notes ended up in Obsidian. I also moved a PC into the living room and found a keyboard worth keeping for it.
Late 2024: Coffee Tinkers
Once the rat rod was running, a lot of mornings started with coffee and a small Python idea. Most took a few hours. Several of them turned into something much larger later.
The birds got a lot of those mornings. I wrote a casual bird report from the HaikuBox data, put an AI listener on a camera’s audio stream after hearing an explosion outside, and in December set things up so I could ask the bird data questions in plain English and have a model write the SQL.
The cameras got automatic color grading for the one that watches Rainier, and after a raccoon got past Frigate, I tried using a model to double-check Frigate’s false positives. In between there was a scraper to get the generator’s propane level into Home Assistant, outdoor temperature sensors for the coop and the pond, a chat tool over my notes, and chord detection tests run through an analog synth for no good reason.
Not all of them worked. Teaching a model to write MIDI got far enough for me to understand exactly why I was not going to finish it.
2025: The Coop, Then Nova
January started with housekeeping. I moved Home Assistant onto the Frigate server and wrote a love letter to Docker Compose about it, published the full app list for anyone who wants to copy the stack, swapped the office Mac Mini for an M4, and finally bought a thermal camera to hunt cold air leaks.
The chicken coop was the big one. I worked out the design, started January 5th, dropped a wall on myself, got through the framing and roof a month behind schedule, and finished 13 weeks in, on an estimate of three. Along the way Rainier put on a snowstorm that built in about a minute, I took the ATV out in the snow, and I took stock of years of single board computer habit.

Spring was cleanup. The shop finally got miter saw dust collection that actually works. In April the pond came back to life, and every one of those confused goldfish had made it through the winter. In May I built a second pond just for tadpoles.
In June the tinkers started growing up. Nova is the voice assistant. It started as a Python service talking to Ollama, and within a week it had a real API and some project discipline. In July I also put up a cedar wall in the studio in one day.
In November, I co-wrote a song with AI to see whether it could work like a producer instead of a vending machine.
2026: The Projects That Grew Up
By New Year’s Day, Home Assistant was running most of the property, and the first couple of months were cleanup. Everything moved behind a reverse proxy with real certificates instead of IP and port. Ring went away. I pulled the coop’s winter temperature data to confirm the insulation meant we could skip the heater. The Coral came out and a Hailo-8 went in.
Then the scripts stopped being scripts.
In April I replaced my HaikuBox with a local BirdNET pipeline across four microphones, and camera alerts turned into AI reviews of what Frigate saw through n8n and Ollama. Grafana turned out to be the wrong tool for the bird data, so I built my own dashboard, then released it and taught it to doubt its own low-confidence calls against eBird range data.

Ceres runs the raised-bed garden for Kim. It started in May as a plan with seven specialist agents, lost half of its schema in the first week, and turned into something that takes voice notes, diagnoses plant problems and writes a morning briefing. The data comes from soil sensors, Home Assistant, weather and a camera, stored in TimescaleDB. This month I extended the same pattern to the rest of the property as Eden.

In May I quit Reddit and built my own feed, which became Cruxwire in June, a self-hosted reader that pulls RSS feeds and uses local models to score, deduplicate and rank them.
Nova got its full writeup in July. It is now a full self-hosted Echo replacement. Speech to text, a local model, a tool loop over Home Assistant, cameras, timers, notes and search, and RAG over my equipment manuals. Nothing leaves the house unless I ask it to. That same month, Home Assistant and Frigate consolidated onto one machine named Alfred.

Two more practical ones. The Blu-ray tool inventoried the shelf, ripped the keepers and priced the rest, which is how the discs finally left the house. And Sumline, a browser-based notepad calculator, went open source in August.
2026: What It Did to the Way I Work
I am a PM. I have always been able to prototype, but the distance between an idea and a running product used to be an engineering team. That distance closed during the break, and I wrote about it as it happened rather than after.
The short version is how a PM ships software without an engineering team. The mechanics are in managing a homelab AI project with Claude Code, Gitea and the Gitea MCP server, how Claude updates the backlog on my team of one, and why I stopped chatting and started filing issues. The bigger takeaways went into what I learned shipping a multi-agent system, what a pile of small AI projects taught me about the PM job, and the AI-native operating system I run my PM work on.
Two of them look backward instead of forward: how I would build the Tableau Connector SDK today and why Kibana runtime fields needed an AI skill and not better docs. And the infrastructure version of the same argument shows up twice, in why I swapped InfluxDB for TimescaleDB and the revision a few months later on cost, latency and where the model should actually run.
What Comes Next
This blog was supposed to chronicle a year off. It ran for almost three, and most of what I built during it is running my house right now.
None of that is stopping. There is just going to be less daylight to work in.