What software engineers bring to AI-assisted software development LLMs don’t mean the end of software engineering as a profession.
Why tech companies encourage their software engineers to use LLMs It's not news that many tech companies are encouraging or even requiring use of LLM coding tools like Claude Code. While reading Sean Goedecke's post about bad code at big companies, it occurred to me that tech companies are happy to have their software engineers use …
Streamlining my user-level CLAUDE.md This post follows up on my post about getting good results from Claude Code. I've recently streamlined my ~/.claude/CLAUDE.md based on: * Informal observations about what Claude does and doesn't do well * A desire to avoid conflicting with principles that seem to be built into …
Getting Good Results from Claude Code: Writing Good Prompts Key to getting good results from Claude Code (and similar LLM programming tools) is writing good prompts. This is one area where your own programming expertise comes into play; you need to use it to provide guidance to the LLM and nudge it in the right direction. Good prompts are …
Give your LLM Coding Tools Their Own Tools Model Context Protocol (MCP) allows LLMs to call "tools" that can do anything: interact with your filesystem, search the Web, hit an external API, or even help guide the LLM through a structured problem-solving process. A single MCP server provides one or more tools; for example, a research …
Getting Good Results from Claude Code An updated version of my user-level CLAUDE.md is featured in this post from December 2, 2025. I've been experimenting with LLM programming agents over the past few months. Claude Code has become my favorite. It is not without issues, but it's allowed me to write …
Socket organizers, end caps, and 3D-printed friction fits Another recent 3D printing project was customizing these socket organizers for 4 socket sets that live in a tool bag with my 3/8" impact wrench: Since these live in a tool bag instead of in a drawer, I wanted to be sure the sockets would fit snugly in …
Making 3D-printed end caps for sharp aluminum extrusions My table saw — a portable Hitachi C10RA2 I bought from a friend — features two aluminum extrusions along the table top. These extrusions stick out a bit on each side of the saw, and they have sharp corners, and they hurt when you bump into them: I chose to take a …
Blocking disposable email domains in Mastodon Mastodon yesterday experienced a small wave of spam. One thing we're doing in response at a2mi.social, as recommended by this summary of the incident, is improving how we block disposable email providers. I wrote the following Bash script, inspired by this one. Run periodically via cron, it …
Reliable WiFi for the Bambu X1C 3D printer How to set up a Raspberry Pi WiFi access point that the Bambu X1C can stay connected to.
Desert stills from Koyaanisqatsi as desktop wallpaper The Yearlong Koyaanisqatsi Mastodon bot recently shared a series of frames that I felt could stand alone as still photos — something I find somewhat rare in a lot of movies, though Koyaanisqatsi and co. are a notable exception. I thought they'd work nicely as desktop wallpapers. Unfortunately, AFAICT …
Automated generator load-shedding for the house Another recent house-related problem, and a solution. My house has an old 7 kW natural gas generator. During a power outage, it makes sure the house still has heat and running water, and it also powers some lights and outlets in the bedroom, office, and kitchen. The "office" …
Fixing bad design with a label maker There are now two objects in my house that look odd but work 1000% better than when I bought them. I quite like my alarm clock overall, but the buttons you use to control the light, volume, snooze, and alarm are tiny and it's nearly impossible to tell …
OpenList is no longer available in the Chrome Web Store I received a kind email this week from someone who used my Chrome extension, OpenList, asking if I was aware it had been de-listed from the Chrome Web Store. I am indeed aware; I de-listed it, and I'm happy to explain why: I have personally not used this …
Recycling a pallet into an Adirondack-ish-style footrest A brief project log for today. I was taking in some sun last weekend when I decided the chair I was sitting in needed a matching footrest. I briefly looked at Amazon, but I wanted instant gratification, and everything that looked halfway decent and was made of actual wood seemed …
Setting up a secondary Pi-Hole on my home network I run Pi-Hole as the DNS server for my home network. It provides ad and nuisance blocking for a subset of the systems in the house. Having a single DNS server for your network is very stressful; it’s a single point of failure, so even routine maintenance feels touch-and-go. …
Setting up KVM virtual machines using a bridge network on an Ubuntu host I recently wanted to set up a VM on my home Ubuntu 22.04 LTS server, with the following goals: 1. the VM uses KVM virtualization, for performance 2. the guest VM is assigned an IP via DHCP by my home network router 3. the guest VM is accessible by …
How to move Docker's data directory from /var/lib I recently had to move Docker's data directory on my home NAS (from the root filesystem to the storage array). I found some incomplete and inconsistent information on the Web about how to do this, so for future reference here's the process I used to do …
RIP: SaveTabs Chrome Extension GitHub - cdzombak/SaveTabs: Chrome extension to save all the tabs in your current window to a bookmarks folderChrome extension to save all the tabs in your current window to a bookmarks folder - cdzombak/SaveTabsGitHubcdzombak
RIP: OpenList Chrome Extension GitHub - cdzombak/OpenList: Chrome extension to open a list of URLs or search terms in new tabsChrome extension to open a list of URLs or search terms in new tabs - cdzombak/OpenListGitHubcdzombak
Considerations for a long-running Raspberry Pi Keeping a Raspberry Pi online and working with zero intervention for weeks, months, or years is somewhat of an art form. Several classes of things can go wrong, and you need to consider how your Pi will recover from each of them.