Nothing here was built new

The MacBook Neo Guide

You can read all the reviews you want about new hardware, but if it’s hardware you touch, there is one test that can only be performed in person, and it’s important: you hold it in your hand and you feel the answer to the question, “Is this a piece of junk?”

I was skeptical about the MacBook Neo until I walked to my local Apple Store and held the machine in my hand. This is not a piece of junk.

Similar to The Apple Charging Guide, I researched and built a MacBook Neo Guide to what’s inside, but, more importantly, what’s changed in Apple’s DNA to allow them to build the Neo. The punchline: Apple’s DNA didn’t change. Economics did — Apple Silicon made it possible to hit $599 without compromising the experience. The most expensive component was already paid for.

MacBook Neo

the $599 mac that shouldn’t exist
Apple’s answer to a question Steve Jobs said couldn’t be answered — a sub-$600 laptop that isn’t junk. Nothing new. Nothing wasted.
ChipiPhone 16 Pro silicon. R&D bill: already paid.
Display13.6″ Liquid Retina — same panel class as the Air
PortsTwo USB-C. One’s 20× faster. Good luck guessing.
Memory8GB. Baked in. No upgrade. Ever.
RepairScrews, not glue. Modular ports. No parts pairing.
Price$599 / $699.

April 16, 2026 2 Comments
The joy of bite-sized information

Short Attention Span Theater

Back in 2013, Alex King and I redesigned the Rands in Repose. Thirteen years — still happy with the design. It’s readable, clean, and prominently features typography I love. What you look at this moment is 90% Alex’s original design.

But there was one more thing we never finished.

Over the years, Esquire featured a densely packed, almost collage-like, front-of-book single page with wildly mixed type sizes, random facts, quips, and blurbs slammed together from the current issue. My short attention span-addled brain loved it. I showed this to Alex as an idea for the footer, and we agreed to take a swing as part of the redesign, but as the volunteer work proceeded, it was obvious we should focus on the header and the body of the site. We dabbled, we didn’t deliver.

Fact: No one ever sees the footer. Yes, some people, but most folks are above-the-fold readers, and a typographically and visually clever footer would be lost on them.

Fact: Never stopped thinking about this footer — for years. I wanted an informationally dense and playful footer that encourages the reader to wander a bit. No strict narrative, just pleasing bits of readable information that pointed to random parts of the site.

Over the years, I poked at the footer, but it remained bland and boring. Then, the robots arrived.

Grumbles Guides

I write a What’s in your bag? piece every couple of years. It’s therapy. I’m trying to figure out if I need to jettison stuff from the bag. It forces me to look at each item in my bag and ask, “Why?” Why is a great question to ask the robots, so when I got to the rat’s nest of cables in my bag, I asked why. Why do I need all of these cables? Which are the best ones to keep? These Whys lead to more Whys, and suddenly it was a day and a half later, and I had pages of research about chargers, cables, lithium batteries, and devices.

I learned a lot. I learned how different Apple devices charge, I learned how lithium batteries are designed, and I learned what makes a good charger. This could’ve been a Rands article, but the content was more research than exposition, so I asked the robots to take a template I’d built and appropriately place my research.

After much back and forth, we ended up with the Apple Charging Situation. This significant artifact was buried in the middle of the Bag piece and didn’t get a lot of attention. No biggie, posting stuff on the Internet follows this pattern: build it well, throw it against the wall, and see if it sticks. It usually does not.

The March Apple hardware releases showed up, and I eagerly read the updated specs. As a newly informed connoisseur of charging, I was curious how the new hardware mapped into my existing observations. After reading a dozen articles, I realized I already had a framework for understanding the charging landscape, so I asked the robots to update the Guide with everything we learned from March 2026. Grumbles 1 did.

I posted the new guide, grabbed the list of changes, and posted to the socials, and that is the version that stuck to the Internet.

The Theatre

You know where Jon Stewart started on TV? He started on a show called Short Attention Span Theater. It ran for five years on The Comedy Channel, with Stewart hosting three years of the show. The format? Clips of stand-up comedy for a half-hour. That’s it. Think YouTube shorts, except with no Internet.

There are important reasons to be alarmed by this type of short-form communication slash entertainment. When you combine bite-sized information with the robots, you get echo-chamber-y endless lists of useless intellectual calories. Think TikTok. It’s fun, but did you actually learn anything?

The chunky card format for the Apple Charging guide is not for everyone. There is a narrative arc, but it’s also just fine if you want to bounce around wherever your eyes take you. That’s the point. Bite-sized chunks of topical information. Choose your own adventure.

And, yes, Grumbles and I redid the footer.

  1. Why Grumbles? It’s the name of my robot. More on this in a later piece.↩︎
April 15, 2026
Accelerated daily joy

Better, Faster, and (Even) More

I’ve never built more interesting, random, and useless scripts, tools, and services than I have in the last six months. The cost to go from “Random Thought” to “Working Something” has never been lower thanks to Claude Code. However, this increase in speed has only made my desire to move faster and more efficiently higher.

The following is a set of tools and practices I’ve gathered over the last 90 days, which continue to accelerate my process and give me daily joy.

How I Organize

Everything lives under ~/Projects/. Each project is its own git repo with its own CLAUDE.md (project-specific instructions) and WORKLOG.md (session history). Three repos do special duty:

  • dotfiles — Machine configuration. Shell config, terminal config, Claude Code settings, skills, and status line script all live here and get symlinked to where the system expects them (~/.zshrc, ~/.claude/settings.json, ~/.config/ghostty/config, etc.). Checked into git so every machine stays in sync with a pull.
  • credentials — A private repo for API keys and secrets, kept separate from project code.
  • scripts — Standalone CLI tools added to PATH. Things like fresh (repo health checker), gpush (one-command commit and push), and ghostty-font (font switcher).

Every project gets two files: CLAUDE.md and WORKLOG.md. CLAUDE.md is instructions and reference — how to build, deploy, what patterns to follow, where things live. It rarely changes. WORKLOG.md is the session diary. Every time Claude and I work on a project, it logs what we investigated, what changed, what we decided, and why. When I come back days or weeks later, Claude reads the worklog and picks up where we left off instead of starting cold.

Copy to Clipboard

Claude generates a lot of stuff that I cut and paste, but the initial problem was that copying from Ghostty included unavoidable leading spaces on output. The fix? Have Claude paste text straight to the clipboard via macOS pbcopy1. Also, depending on where I am posting (mail, Slack, messages), I have Claude format appropriately before pasting2.

Screenshot to Clipboard

It is often much faster to just dump a screenshot into Claude Code rather than describe the issue. I used to grab a screenshot and then cut and paste it from my Documents directory. Too slow. F12 grabs a region of the screen and puts it on the clipboard so I can paste. Configured in macOS System Settings > Keyboard > Shortcuts3.

Check My Setup

I move between three machines a lot, and given that the state of the art is changing, well, daily, a day working on one machine means that my local config has improved THAT DAY, which means when I move to a new machine, I want to update the setup.

I have a single script that validates my entire Mac setup. Checks 30+ items across categories: core tools (Homebrew, Python, Node, Ghostty, Claude Code), shell config (zsh default, oh-my-zsh), symlinks (.zshrc, .gitconfig, Ghostty config), SSH (key, agent, keychain), credentials, and coding fonts. Reports green/yellow/red per item. When things are missing, prints fix commands in dependency order — SSH before git config, Homebrew before everything that needs brew install.

# This is an example
# Check Claude Code global settings.json

if [ -f "$HOME/.claude/settings.json" ]; then
    settings_issues=""
    if ! grep -q "alwaysThinkingEnabled.*true" "$HOME/.claude/settings.json"; then
        settings_issues="thinking"
    fi
    if ! grep -q "statusLine" "$HOME/.claude/settings.json"; then
        settings_issues="${settings_issues:+$settings_issues, }statusLine"
    fi

    if [ -z "$settings_issues" ]; then
        print_row "Claude Code settings" "${GREEN}✓ Configured${NC}" "Thinking + status line enabled"
    else
        print_row "Claude Code settings" "${YELLOW}⚠ Incomplete${NC}" "Missing: $settings_issues"
        missing_items+=("claude-settings")
    fi
else
    print_row "Claude Code settings" "${RED}✗ Missing${NC}" "~/.claude/settings.json"
    missing_items+=("claude-settings")
fi
Bash

Uncommitted Changes / Or Fresh

I have an oh-my-zsh git plugin with the robbyrussell theme. The prompt shows a yellow when the working tree has uncommitted changes. No custom config — it’s the default behavior of that theme’s git_prompt_status function.

For times when I forget, I have a script called Fresh that walks through my entire Project directory and reports uncommitted changes, unpushed commits, and stale repos across all projects. One command to answer: “Did I forget to push something before switching machines?”

Memories vs. Skills vs. Hooks

Memories (~/.claude/projects/<project>/memory/): Persistent notes Claude saves between sessions per project. Things like “this user prefers terse responses” or “the auth rewrite is driven by compliance, not tech debt.” Claude reads them at the start of each conversation to pick up context that it would otherwise lose. They’re markdown files with frontmatter (type, description) indexed by a MEMORY.md file. Types: user preferences, feedback/corrections, project context, external references. Checked in alongside my project, and by far the largest timesaver for building context.

Skills (~/.claude/skills/<name>/SKILL.md): Reusable prompt templates invoked with /skillname. A skill defines a multi-step procedure Claude follows — like a macro. Example: /floyd loads a voice definition file, then rewrites whatever content I have in that voice. Skills don’t execute code themselves; they inject instructions into the conversation that Claude follows. I have skills for blog posts, podcasts, recurring expenses, and a lot more.

Hooks (settings.json"hooks"): Shell commands that fire automatically on Claude Code events like tool use or end of response. I don’t use them yet, but they’re there for automation — things like running a linter after every file edit or logging tool usage.

Statusline

Claude Code has a configurable status line at the bottom of the terminal. Mine runs a bash script that renders three lines of live data:

The rate limit data comes from Anthropic’s usage API, authenticated via an OAuth token pulled from the macOS Keychain. It caches the response for 60 seconds, so it doesn’t slow down every render4.

Ghostty Tab Title

I’m usually working on several projects at once, so at-a-glance tabs are essential. I have a claude() wrapper in .zshrc:

claude() {
    printf '\033]0;Claude: %s\007' "${PWD##*/}"
    CLAUDE_CODE_DISABLE_TERMINAL_TITLE=1 command claude "$@"
    printf '\033]0;%s\007' "${PWD##*/}"
}
Bash

Sets the Ghostty tab title to “Claude: projectname” when Claude starts, suppresses Claude’s own title management via the env var, and restores the tab to just the project name on exit.

I’ve written this up entirely because I am certain others have found equally satisfying improvements, and I want to know what they are.

UPDATE: Tips from Readers

Since publishing, readers have shared helpful tips that I’ve incorporated into my workflow:

Per-project terminal colors. Most modern terminals let you set background colors per profile or directory. I now have different colors for different projects — green for one, blue for another. It sounds minor, but it’s a surprisingly effective context signal when you’re bouncing between windows.

Tuning tool permissions. Claude Code asks permission before running shell commands, which is safe but slow. I had Claude review the commands I run regularly, filter out anything destructive, and approve the rest in the project’s .claude/settings.json. Game-changer — sessions move noticeably faster when you’re not clicking “Allow” every few seconds.

/copy for grabbing output. The /copy slash command copies Claude’s last response directly to your clipboard. Cleaner than selecting and copying manually, especially for long responses.

Worklog trimming. I wrote a persistent instruction that tells Claude how to compress my worklog files. The rule: delete anything recoverable from git history or the current code, condense old completed work, but keep open questions, key decisions, and active experiments. This keeps the context window focused on what actually matters rather than filling it with stale history.

  1. Windows equivalent: clip, e.g., echo hello | clip↩︎
  2. Also, I have since learned there is a /copy command in Claude↩︎
  3. On Windows: Win+Shift+S opens the Snipping Tool for region capture to clipboard.↩︎
  4. Currently rocking the IBM Plex Mono — more on this shortly↩︎
March 20, 2026 4 Comments
FRIENDLY!

The One About ARC Raiders

The One About ARC Raiders

In our 96th episode, Rands goes deep (perhaps too deep) on ARC Raiders, an extraction shooter where trust is the real currency.

Mentioned, referenced, or obsessed over:

Related Important Things episodes:

Enjoy it now, or download for later. Here’s a handy feed or subscribe via Overcast or iTunes.

March 6, 2026
Not a fair fight

Hit and Run

As you drive by a cyclist, you have one of three opinions:

  1. We’re good. No issue. Everyone stayed in their lane.
  2. Something is up. What is this cyclist doing? I’m confused. Don’t they need to obey the rules of the road?
  3. WHOA WHOA WHOA WHO IS THIS GUY AND WHY IS HE IN MY LANE I AM GOING TO SHOW HIM WHAT’S UP WITH THIS HOOOOOOOOOOOOOOOONK.

As a person who drives, I’ve experienced #1 and #2 quite a bit. My perspective has shifted as I dived into both road and gravel cycling over the last half decade. As a person who rides a lot, I do understand road rage, but the number of times a driver in a car has lost their mind because of my riding is… impressive.

Road rage. I get it. I’ve had it, but when it comes to Car vs. Bike, it’s not a fair fight. You’re in a big metal box, and I’m on a metal toothpick with a plastic cap on my head. You will always win.

My Working Assumption

I work under the assumption that whenever I ride, the question isn’t if I am going to be hit by a car, but when. This is a proactive defensive mindset rooted in the fact that I am guaranteed to lose every interaction with a motor vehicle.

To support this mindset, I need as much situational awareness as possible. In front of me, when cars are about, it’s an endless set of questions. Who is coming at me? Who is turning? Who is in what lane? What is their intended direction? Are they aware I am here? Am I sure? In all scenarios where it’s unclear whether or not this three-ton box of steel might be heading my way, I give them a wide berth. I will lose this fight every time, so, no, please, go ahead — take all the space you want.

Behind me is a different story. A quick look over the shoulder, yes, I have a glimpse of the situation over either shoulder, but remember — I AM RIDING A BIKE — heading forward and am required to pay full attention to that situation. The box of steel behind me is almost always moving faster than I am and always has unclear intentions. Before the device I am about to describe, I became quite adept at correctly guessing the size and the speed of the box of steel approaching from behind based on sound. BIG TRUCK. MOVING FAST.

A quick look over the shoulder is not always an option, especially when there are multiple interesting situations directly in front of me. Enter radar.

The appropriately named Varia RearVue 820 attaches to my seat post and provides me with real-time data on my Garmin computer on my handlebars:

  1. All the steel boxes behind me. (And metal toothpicks)
  2. Their type (small, medium, large).
  3. Their threat level is displayed as a highlight on my Garmin Computer. Green means we’re fine. Orange means moving fast and in your lane. Red means moving fast, big, and in your lane.

Looks like this:

Garmin Varia RearVue 820

Eyes for the back of your head
Intensely bright light that also serves as a brake light. It's not weightless, but it's less chonky than the video version. Don't forget to set up your Garmin computer to fully show off the radar screens -- it does more than you think.
Radar 175m / 574ft range, covers two lanes of traffic
Light Visible 1mi+ in daylight, auto brake light
Battery 10-30 hrs (mode dependent)
Weight 90g — about a deck of cards
Joy Intense
Charge USB-C

In addition to the visuals, I can also set audio cues that alert me to different situations, but most of that already arrives via just listening. Yes, it can make errors — sometimes boxes are just toothpicks. Yes, if it’s raining, it’s a mess, but if I’m out in the rain, I’m already on high alert. Finally, it also shines a bright red on the folks behind me.

A Bright Red Light

The ride to work. Suburbia. I’m stopped at a long red light when the metal box approaches on my left. We’re both at the front and it’s clear they want to say something… the slow roll forward. The window is going down on the passenger side. They’re in driver state #2 above: something’s up.

“Sir. I say, sir. The light on your bike is distracting me.”

<sfx: Deep breath>

I turn my head and speak calmly, “My… brake light?”

“It’s distracting.”

“No, it’s not. You’ve got the same light on your car; in fact, there are two of them. I stare at them all the time. They are designed to give important information to your fellow travelers. It’s there to make sure you don’t hit me.”

Green light.

March 5, 2026 5 Comments
Don’t label, understand

The Complicators, The Drama Aggregators, and The Avoiders

It’s hard to tell what drives each human. This is why my usual last interview question is a very blunt, “What do you want to be when you grow up?” I ask everyone regardless of the amount of experience because I want to see how they improvise and, often, a hint at their motivation.

I usually have a working thesis by the time we arrive at this final question. Ah, this person is motivated by accomplishment, great. Oh, this is a money person — that’s fine, coin-operated humans are very predictable, I find. Uh oh, I have no idea what motivates this person… dig more.

The need to understand motivation is required because your job as a leader is build a successful team that is full of individuals who want stuff. Compensation, opportunities, or just a quiet place to build. Understanding what they want is the start of understanding how to motivate them. If you don’t understand drive, you have nowhere to start.

While you figure that out, let me alert you to three drives that are going to consume a disproportionate amount of your time, frustrate your engineers, and erode your leadership credibility.

The Complicators

These humans like to fix stuff. The drive starts with the observation that a part of the system, product, or process is broken. Some credible engineers fear finding this brokenness, and then some light up because they now have a time to shine — let’s fix it!

Except they are The Complicator.

Sigh.

Let’s start with the positives.

  • They did see the problem, and they are capable of fixing the issue.
  • They are going to jump on the issue, start working, and give those watching confidence.
  • They are going to sound like they are making progress, and all the cues confirm this progress.

… except they never finish.

The Complicator challenge: they love the solving part, but not the fixing part. Their desire to tinker exceeds the need to fix. What if I do this? Oh interesting. Flip that switch. Well, that’s delightful. I will flip that switch again.

Complicators create immense piles of mostly interesting stuff. Complicators will describe this stuff to you endlessly in detail — it’s almost as fun to talk about it as it is to tinker. Complicators might sound like they are close to a fix, but what you are hearing is their enthusiasm about this next tinker. When pressed for a timeline for a solution, the Complicator will firehose you with seemingly endless stuff they’ve tried and the near infinite ideas they have to try next. You will leave this conversation confused, but they will leave the conversation fulfilled.

The Complicator needs:

  • A well-defined and measurable goal.
  • A schedule.
  • An understanding of a complete set of constraints.

When I see a Complicator spinning up the complexity, I find an operational human who can pair with them. Entropy Crushers are amazing at this and eat Complicators for breakfast.

Drama Aggregators

These humans crave energy. They trade in it. It starts down the hallway or in the Slack channel, where they discover a secret. What’s the secret? I don’t know, it’s a secret. With this secret in hand, these humans take the secret to a very specific set of people. Humans who:

  • They trust (and thus are deserving of the secret),
  • Add energy to the secret via the addition of conjecture and opinions,
  • Are likely to take that secret, adapt it, and give it to others.

Sigh.

Let’s start with the positives:

  • They did find the secret. The identification, collection, and distribution of semi-hidden information is a natural tax part of humans working together.
  • I mean, they care, right? If they didn’t care about the company/team/product, they would peddle in gossip actively share interesting information.
  • They sense something, and that something is important.

You are a manager in this scenario, and part of the management role is that you both have access to more information and a responsibility to share that information appropriately with your team. You will screw this up. The most common scenario is you are given Information X. You stare at Information X and determine “Not that important, actually,” and because of this perceived low importance, you forget to share at your next staff meeting.

The core issue: your quick assessment was correct, given the information you have at your fingertips. The issue is that when paired with other readily available information not in your line of sight, it is clear your assessment is wrong — horribly wrong1.

Most of your team can intuitively sense information vacuums. It’s that slight eyebrow raise when the story… kind’a… doesn’t make sense. Some of them raise their eyebrow and move on, but not the Drama Aggregators. They sense the mystery, the intrigue. In fact, they already have a leading unsubstantiated theory why this information vacuum exists, AND BOY IT’S JUICY.

Sigh.

Drama Aggregators need:

  • Information. Lots of it. Consistently. Proactively.1
  • A mirror. There are positive aspects to this behavior, but Drama Aggregators do not understand the aggregate cost of the drama they are aggregating. The lesson is not don’t do this; it’s to understand the implications of the drama you are aggregating.
  • A job.

Yes. My snark is high with the Drama Aggregators. I’m working hard as I write this to shine a light on the positives, but when I find myself stumbling into a Drama Aggregated situation, my first unspoken thought is, “Don’t we have better things to do with our time?” If this situation is a result of a failure on my part1, fine, I’ll take the hit, but when I discover the Drama, dig in, and find the swirl of noise, murky information, and emotion has no basis in fact, I’m furious frustrated. My average work day already has plenty of real firefighting, so why am I not putting out fake fires? At least the Complicator is doing something useful by trying to fix the problem.

I’ve hit that footnote1 four times now, so you know the practice. It’s not going to eliminate the Drama Aggregators’ need for energy, but a strategy of overcommunication will fill information gaps. The reduction in these vacuums reduces targets for Drama Aggregators. Also, when they invariably spin up a High Drama regardless of your hard work, you can point at your communication furiously and remind everyone, there is little drama here.

The Avoiders

Lenny. Good engineering manager. We’ve been working together for over a year. We are built differently, so we stare at each other strangely now and then, but everyone is an adjustment. No issue here.

Year two of our working relationship, my staff meeting. I’ve identified a non-urgent, but long-term, important effort that one of my managers needs to drive. I clearly state the requirements and ask for volunteers.

Silence. Not surprised. We’ve all got enough work on our hands with Complicators making it complicated and Drama Aggregators viciously building unnecessary fires. I get it. However, if we don’t do my project, then we’re creating future avoidable pain for ourselves, so I say that — clearly — and ask for volunteers again.

Silence.

And then it hits me. Lenny has never signed up for anything. Lenny is working; he has a team full of engineers who are doing well, but when it comes to work outside of his clearly defined responsibilities, he doesn’t show up. So, after 30 seconds of silence, I give him the task. He squints, nods noncommittally, and a week later has stealthily reassigned the task to one of his peers.

Oh. The Avoider.

Let’s start with the positives. These humans:

  • Understand what is and isn’t their work responsibility.
  • Often serves as a healthy counter-perspective to your goofier ideas.
  • Are really good at delegation. In every direction.

Of our three archetypes, The Avoider is the least a character attribute and also the easiest for you to address. Yes, they like working in their well-defined box that is their team or their product. “Not my problem.” Yes, like you, they do not like being told what to do; they prefer to be asked, but in this situation, the Avoiders don’t know what you are talking about.

In a healthy team, your team assumes your competence. This means when you say, “We should do X,” there are those sitting around the able, who don’t give X much thought; they assume, “Well, he knows, so let’s go.” I’m not talking about sycophants, I’m talking about teams who trust their leaders.

The challenge is that you start to get comfortable with people agreeing with you, so you do less work to frame your thinking. Your thought, they’ll figure it out, right?And sometimes you’re right, but sometimes this comfort turns into laziness. Your request isn’t a request; it’s a half-thought motivated by recency bias, and The Avoider has seen this before. No, thanks.

There are Evil Variants2 of all of these archetypes, and a serial Avoider is one of them, but my working assumption for all of the non-evil variants is that they want to help. It’d be helpful if The Avoider requested clarification as opposed to avoiding, but he’s seen this trick before, and he’s not interested in wasting his or his team’s time in an effort he does not understand.

Regarding Slippery Humans

I had the robots run through the 900+ articles on this blog, asking the question, “How many labels for humans have I generated?” From 2002, there have been 90+ labels in 14 different categories3. To me, it started in 2003 with the Incrementalists and Completionists article. That work struck a nerve.

Each of these labels is distinct in my head. They all started as an observation of another human, but I wasn’t seeing the entire human — it was this one habit. Characteristic. Behavior. The reduction to a colorful label makes understanding the situation approachable. Yes, The Old Guard. I know these people.

While mentally digestible, labels have historically bugged me for two reasons. First, they reduce a human to a label. This is the point of the label: to provide a name to the behavior, but when leading humans, there are no labels. Humans are complex. Humans feature sets of hard-to-predict behaviors that, when combined with other humans, only become more unpredictable. My labels might help a bit to understand one behavior, but the real work begins by stepping back and seeing the entirety of the human.

Second, and I haven’t reread all the personality articles over the years, but my impression is that my label schtick often conveys they are the problem. Sorry, as a manager, you don’t get to blame others on your team. It’s your fault. Yes, evil exists. Humans who are inexplicably hostile to the project or you. Who are acting purely in their self-interest. Who lie. Who deceives. You are accountable for all of them.

To understand motivation, you must understand drive. I wish all of these drives were productive and positive, but many are not. My discomfort with these drives is not an excuse to ignore them; in fact, they signal when I am required to do my most important work.


  1. Your default information policy: over-share. 
  2. I’m describing the pleasant versions of each of these archetypes. The ones who mostly do no harm. They are evil variants of each. The Complicator: complicates all the time, will never stop. Drama Aggregator: aggregates drama for sport. Love chaos. The Avoider: literally does not want to work. 
  3. Future article here, yes. 
March 2, 2026 1 Comment
Less space. More stuff-thoughtful.

What’s in the Nerd Bag?

On the Pro Leisure Circuit, I’m spending a lot of time in random coffee shops. Cafe Dio in Los Gatos. Long-standing desk. View of the redwoods in front of my high school. Can recommend.

It’s been a while since I’ve documented what’s in my bag, but there have been several recent notable updates worth discussing, as well as a seismic bag shift, which is where we’ll start.

TUMI: Harrison Warren Backpack: I’ve been Team Tom Bihn for a long time. I recently purged the closet, and the pile of Tom Bihn bag-related detritus was impressive. The shift to Tumi was driven by the same design sensibility that drove me to Tom Bihn. As I wrote about, I have an existing bias against backpacks because of high school — lugging around bags of books in huge canvas monstrosities.

While Tom Bihn was my stalwart for years, it also started to look baggy to me. Roundish, lumpish, and just hanging on my back. On a post-pandemic trip to London, I walked into a Tumi store (a little drunk) and started talking backpacks.

Enter: the Harrison Warren.

On top of a very clean nylon and leather-highlighted design, the Harrison Warren offers less space. Pardon? You read that right, less space. No matter how diligent I am about what I put in my bag, I simply accrete stuff over time. A notebook, a book, a stack of papers, that thing I need to give to someone sometime. Stuff, stuff, stuff. Harrison Warren offers ample pockets, sleeves, and space for all my stuff, but it is not spacious. It is not designed to lug many pounds of random crap across the Continent which means I am required to be more stuff-thoughtful.

Equally important to the capacity is useful details. If you are considering a Tumi, you must go in and talk with the salesperson. The amount of consideration that has gone into a Tumi product is immense. They know you are an engineer, writer, or actor who needs quick access to their stuff at random times. Their bags are built for these humans, but unless someone explains these features… you’re going to think it’s just a pocket.

I’m coming up on three years with Harrison Warren, where I’ve been on hundreds of trips. Build quality — not an issue. He looks great.

ANKER: Prime Charger: Charging is a way of life. Each time I find myself with a dead device, I go on the operational offensive. What change do I need to make to ensure this never happens again? The short answer is: I have a backup of just about every critical device in my bag. There are two phones, a MacBook, an iPad, two AirPods, and so forth. Yes, this increases weight, but I DO NOT CARE. I AM NOT SHOWING UP IN LONDON POORLY EQUIPPED, OK?

Even with a healthy set of backups, all of these devices need charging. I was using this USB-C hub for years. Still, I was vaguely aware that different chargers provided different wattages, so I began investigating my vast array of white Apple charging bricks.

Let’s start with a vent: I am intimately aware of how much Apple cares about design, but it’s baffling how hard it is to read the text on these bricks1. It’s designed to be unobtrusive, I get it, and most humans don’t care about how many watts are pumped through each brick, but when it matters, you sure do.

A charging primer:

  • On top of the number of watts provided by your charger, there is also the amount of charge your device can accept. For example, your fancy new iPhone 17 Pro Max can accept 40W maximum, but your friend’s iPhone 17 can only accept 27W. Even with a much larger battery, the Pro Max will charge faster with the right charger.
  • Lithium batteries charge on a curve with the first 50% being the fastest, 50-80% slowing down, and the charge to 100% taking relatively a very long time. For example, my iPhone 17 Pro Max takes 20 minutes to get to 50%, 41 minutes to 80%, and an hour and 31m to 100% with the best charger. You have two critical questions when your device is dead: how long until it’s working again, and how can I get the most charge in the least amount of time?

Again, most humans don’t care about all these details, which is fine. The issue is that most humans are grabbing that 20W charger out of their box of chargers and plugging in their device, and not knowing they are wasting a lot of time charging. If they’re plugged in all night, who cares? However, in a pinch, you can drastically affect the speed of the charge. We’re talking 47% faster on that first 50% charge. Huge.

Anker has been my go-to not-Apple device charger for many years. Their most recent Anker Prime Charger has a lot to like:

  • Three USB-C ports at 140W each. (Yes, most devices can’t suck down this much power, but 140W covers everything you currently have and likely covers future toys you will have.) When two ports are active, it splits ~78W + ~76W. Three ports: ~60W + ~50W + ~35W. No USB-A. You don’t need it. You’re covered.
  • More importantly to me, there is a display on this device that shows how many watts are being delivered via each port. Also, when you plug a device in, it smiles at you. Aw.

I had Grumbles build you a comprehensive cheat sheet of the Apple charging situation, comparing the 20W with Anker’s latest for all your Apple hardware. It’s illuminating — view it or grab the PDF.

UBIQUITI: Travel Router: The house is all in on Ubiquiti. I have a rack down in one of the closets, which powers a set of APs and cameras across the property. What was a messy mesh of Eeros was replaced with a rock-solid blanket of Wi-Fi and wired goodness2.

Now that I’m on the Pro Leisure Circuit, my home network is also work. This means when I’m at my favorite coffee shop, it’d be very handy to have access to all my home resources. Ubiquiti already makes this pretty easy with Teleport VPN links, but with the Travel Router, they make it even simpler.

This small battery-less device connects with whatever untrustworthy Wi-Fi is available and, using Teleport/WireGuard (same thing, different branding), creates a secure tunnel back to your home network. When configured anywhere on the planet, my home Wi-Fi shows up just like I’m at home. The trade-off is a network performance hit from the encryption, but the peace of mind is worth it.

The Travel Router has not earned itself a place in the bag, yet. Two outings so far, and I’ve spent more time tinkering with the device rather than appreciating it. We’ll see.

The rest of the contents of the Tumi are presented with light commentary:

  • MacBook Pro. The new one. Space Black. Yes, the Air is lovely, but I love the weight of the Pro.
  • iPhone Pro Max — atomic orange, of course. iPhone 17 backup — just in case.
  • iPad Pro 13 — mostly a content consumption device.
  • A small see-through bag with back-up cables, converters, and stuff necessary to present.
  • An orange notebook for random thoughts.
  • Clif Bars. Because sometimes you get hungry.
  • (5) Zebra Sarasa Gel .5. Best gel pen on planet earth.
  • Altoids. Because toothbrushes are often distant.
  • A Tide pen. Because I can be sloppy, and I like nice button-up shirts.
  • A black Sharpie for when I need to yell.
  • An iPhone MagSafe Battery — they stopped making these. I don’t know why. I’ll buy a Kuxiu S4 when it’s available. Stay tuned.

With all of these items in this bag, it weighs just under six pounds. There’s an international variant of this bag build out, which includes international converters as well as additional backup cables, because somehow other people need these items more internationally.

The best part? This bag is sitting right there. It’s ready to go whenever. Will I need all that stuff? Rarely. Will I grin when out of nowhere someone needs an extra phone? I will. Will I slowly become the guy at the conference who can help you with whatever? Yes, I am that guy.


  1. Someone wrote about this elsewhere, but recent charger bricks moved from a dark grey, unreadable text to a light grey, even more unreadable text. It’s horrific. If you have a questiona about a charger, the Apple support page offers actual readable text 
  2. The administration interfaces for Ubiquiti are a nerd work of art. 

February 21, 2026 5 Comments
Discovering lies

Extremely Lazy and Immensely Curious

When I explain that Claude Code has changed my relationship with developing software completely, I’m under-exaggerating… if that’s even a thing.

This off-the-cuff piece started as a unposted social update that read:

Watching Claude Code adeptly use every type of Unix command shows me that a) you can do anything in Unix, b) my higher-level operating system mostly hides this functionality from me, c) I am extremely lazy, and d) I am immensely curious.

An Introduction to Pansy Rain

This morning it’s going to start to rain — a lot. As previously described, I deeply enjoy tromping around my forest in the rain, fixing drainage, and pulling sticks from stuff. More importantly, I am deeply curious about how the weather works. This is curiosity motivated by an immense fear of climate change and a desire to understand clearly what will occur this week. And why.

Years ago, I started posting a short paragraph to a group chat filled with fellow mountain Dads. It was a three or four-paragraph affair about what was going to happen with the weather in the coming week. No one requested this lightweight and trying-to-be-approachable blurb. It started and stopped during the rainy season in Northern California, but over time, I continued through the summer, starting to track heat events, air quality (see fires), and fog.

Here’s the one from last week:

Welcome back, Winter. We missed you. Rain, lots of it this week. Chance of pansy rain tonight, but I wouldn’t count on it. Looks like we’re in for a solid inch-plus on Tuesday morning through Wednesday evening, but the show starts on Saturday night. Solid chonky rain through the end of the week and into next. Weirdly, the first storm is coming from Hawaii (wet), but the big weekend fronts are coming from Alaska. This latter rain is going to hang.

See? Approachable? My initial goal was that anyone could quickly read this blurb and plan for their week. Ah, yes. Rain on Tuesday. I will plan accordingly.

The friendly tone and brief amount of content might lead you to believe the construction was equally brief. It’s not. The initial flow was:

  • Fire up Wunderground’s 10-day forecast. This deliciously informationally dense chart is my go-to initial stop for all things local weather. It includes rain, cloud cover, chance of precipitation, accumulated rain, and wind speed — and a lot more.
  • Compare against Windy.com. Windy has similar information to Wunderground, but includes stunning maps that include a mind-boggling amount of different layer visualizations. The goal was to compare data from Wunderground to what Windy reported, which tended to provide better rain forecasts from my local microclimate.

It started as 30 minutes of work, and it grew to over an hour of research. As I received light positive feedback for the posts, I started to research data on local streams and reservoirs, along with other fun facts I discovered during my research.

Then the robots showed up.

An Introduction to Chonky Rain

This morning. Just this morning. Here’s what I’ve done with Claude Code:

  • Pulled snapshots from my local weather station to backfill my storm tracker, which is a feature I built last night to track before, during, and after snapshots of storms. I wanted to see all storms (8) from this season, so I had the robots look at historical data, find the storms, and then backfill using my local weather station and open data sources (Weatherlink, Open-Meteo, Valley Water, and others)
  • Found an issue with the data where I was fixing a sensor issue, which caused a data spike. Smoothed the spike.
  • Comparing my local readings with other data sources; refined a multiplier I use to account for my microclimate.
  • Updated creek data to include week-over-week change, so I get a better sense of how water is flowing down those mountains, into the reservoir, and then into town.
  • Moved all this data into the Sunday report mail that I use to write my four-sentence approachable blurb.
  • Oh yeah, as I write this piece, the robots and I are now planning what we’re going to track during the Summer. Fire alerts, air quality, and fog monitoring.

This morning’s work builds on an existing set of scripts that run early every Sunday morning to track:

  • Weather observations and color for the coming week.
  • Current conditions from my local weather station.
  • Last 7 days of rainfall.
  • 10-day forecast.
  • Local reservoirs week-over-week change.
  • The first version of my storm tracker functionality.

I am perfectly capable of building any part of the above system. I am capable of finding the services that provide the information, signing up for an API, understanding the API, building code to call that API, generating a report, and sending that report as an email. Done it a lot. Made a successful career of it, too.

I’ve written none of the code for this weather project. I’ve signed up for some API keys, but mostly what I’ve done is tell Claude Code what I’m looking to do and let the robot figure out what API we need, how to use it, and then suggest different ways we can report this information.

Extremely Lazy and Immensely Curious

When I go through these types of robot-related productivity rants, someone invariably unhelpfully volunteers, “Well, this is a good way to get really dumb.” What this someone is suggesting is that because I am doing none of the work involved in building the thing, I will not intellectually profit from the exercise.

In a world where I hadn’t spent several decades building software, I would partially agree. The lack of domain experience could mean I trust whatever the robot’s built at face value, but — just like humans — the robots make mistakes and often straight-up lie. Been dealing with those situations for a bunch of decades, too. It’s not a problem, it’s how humans (and robots) work.

Yes, I am extremely lazy. I’ve developed a set of habits that support this laziness. Where’s the best affordable Italian restaurant in Greenwich Village? Ask Noah. He knows, and he responds quickly. How should I think about this emotionally charged and complicated people situation? Ask Julia. She knows, and she can view complete emotional chaos dispassionately. Which API should I use to monitor fog? Ask the robots. They don’t know, but they know how to know.

Am I sad as I watch the robot expertly craft semi-familiar Unix commands to perform all the weather-related wizardry? Nope. I learned to delegate to humans a long time ago. It was hard to give up the Legos to someone else, but this forced me to learn other lessons. How to ask others to help. How to clearly make requests. How to listen to their responses to see if they heard. Hearing them. Watching how they work and when they ask for help. Learning how to taste the soup. Discovering lies. Fixing them. Remaining immensely curious and always learning how to communicate better.

Here’s this week’s weather blurb. Written by me:

At this second, it’s partly sunny at the house, but just wait. It’s coming. Around noon today, chonk-i-ish rain begins and continues through Monday. Let’s say two inches today and three inches tomorrow. Sweet. Short break on Monday night, but another inch on Tuesday and a drizzle on Wednesday before we dry out a bit, but more next week. Might be chonky.

(Two inches last week at Chez Rands, Lexington Reservoir up 2.5% on the week, twenty-nine inches for this rain season so far.)

February 16, 2026 2 Comments
Everyone is an adjustment

Three Bad Managers

I worked for each of these humans. They either hired or promoted me. I worked for them for many years. As is my way, I’ve vastly altered the details of each human, but the core issue I describe is the core issue. Also, each of these humans is very smart. No dummies.

Here are their introductions:

An Introduction to The Artist

They hired me. I could tell via the interview process that, like me, they were an introvert. The interview was awkward. Long pauses. Odd questions. No feedback. I got the gig because everyone else who interviewed told me I was a fit, but whether they thought I was a fit or not, I will never know.

First day on the gig. I was sitting at my desk, and they walked into my office, hands in pockets, stood in the door, and asked, “How was your first day?”

… because someone told them that is what you do with new hires.

They are The Artist. Burdened with creativity, all the vision. You could see it in the things they built. Inspired. Somewhere along the way, someone decided to make them a manager. Direct reports. The hope that the art they created would scale with the number of humans.

The challenges were many and diverse, but the core issue is the value of the things this manager was capable of creating, which blinded everyone else to the fact that they were reading books about being a manager, following the rules, but either not caring about what good looked like being a manager or not knowing.

“How was your first day?”

I told them. I walked through each 1:1 I had (five), shared my first very raw impressions (many), and asked them what they thought. The reason I knew someone told them to ask me about my day was that they had absolutely no clue what to do with my assessment of the day. Blank stare. They either didn’t understand or didn’t care. I couldn’t tell which.

Introducing, The Dictator

They promoted me. It took a couple of years of hustle, but they went for it. First meeting in the new role, and we’re in the basement for what is called a product review. Engineering, product managers, and designers. Small affair. Happens when it’s clear we’re at an impasse. A large enterprise customer is threatening to bolt unless we solve a critical feature issue. Not a lot of people — everyone here can contribute significantly.

Product kicks off the discussion with a timeline and three fact-filled slides. Framing the conversation. Small clarification questions, but everyone has been briefed beforehand, so we get to the heart of the problem. Cutting to the chase: it’s a design issue. We had the right requirements, we built it correctly, but our design is wrong. It is confusing the customer. The good news, Design is on it — Design vetted the deck with engineering, and they’ve got solid proposals. This meeting should be a formality, but the Dictator is here.

When we reach the discussion portion of the meeting, the Dictator starts asking questions. Does this mean this? Yes. Have they seen that? They have. If the feature is supposed to do this, why does that happen? Well, I’m glad you asked. We have… and that’s when it happens.

No, no, no, I know you have a proposal, I want to litigate some more. This back and forth goes on for an hour. Several of us attempt to redirect back to the proposal and do not succeed. Soon, we’re at the whiteboard designing a new feature, and the punchline is: the feature is wrong. It’s clumsy at first glance and bad when you’ve thought about it.

And no one says a thing. We leave the meeting, having agreed on building a feature that anyone who has read the deck knows is wrong. And we built it.

And last but not least, please welcome, The Knife

They promoted me, too. I’m not quite sure why.

After it happened, it took a month before we had a 1:1. I would get random requests for information or suggestions, but mostly I ran my show as I saw fit. When the 1:1 showed up on my calendar, I was one part relieved, one part excited, and one part nervous.

I walked into their office, and they were on the phone. Pointing at me to sit down. They were talking to finance people, and my recollection of the vibes of that call is The Knife thought the world was about to end, like that weekend, and they needed to act quickly to protect their assets. (Note to reader: the world did not end that weekend. In fact, while it might feel otherwise, it still has not ended.)

I sat for twenty minutes of a thirty-minute 1:1 listening to all the details regarding the end of the world, wondering why they had huge bulk boxes of granola on the floor, and then they were done.

I don’t know what we talked about. Not a clue. Not even going to invent anything because all I remember is that they pulled a hunting knife out of a drawer in their desk and started talking about something. Not the world ending, not about the granola, and not about the knife they were examining, twirling in their hands.

It wasn’t threatening. I was not in danger. It was just fucking weird.

Our Mind-Blowing Interlude

Ok, forget you read those introductions.

If you and I were at a bar and I explained the respective track record of The Artist, The Dictator, and The Knife in their respective roles, you would consider them good at their job. If I further explained objectively what they had done for their respective teams and companies in terms of generating shareholder value, you would vigorously nod, “Yeah, these are successful humans.”

It’s stronger than that, I can confirm that these are wildly successful leaders.

I can further confirm that each were very bad managers.

Let’s start with my belief that a manager’s job is to tell you where you are, and a leader’s job is to tell you where you are going. With this simple definition, The Artist, The Dictator, and even The Knife, as we’ll see, were strong leaders. They knew where we were going.

An easier way to understand the difference is that leaders are stronger at strategy and managers are stronger at operations. When do you need which? Depends an an endless set of factors, including team size, their place on the organization chart, company culture, and many more. The thing to remember is your boss likely leans strategic or leans tactical.

Let’s continue with the fact that you are going to end up with a bad manager at some point, and it’s not your job to change them — you can’t. In fact, the more senior the leader, the less you’ll be able to influence them.

Let’s finish with the fact that while I despise many of the traits of these humans, I learned essential lessons.

Ok, now remember those introductions.

They Are Bad Managers Because…

The Artist is bad because they don’t value humans. It’s not the part of the equation they care about. Maybe introversion? But mostly because they’re an artist, and what artists care about is the art. Not the essential humans who build the frame, find the right paints, brushes, and make sure The Artist can work in a clean, well-lit place. That’s just noise.

My approach with The Artist was education. I believe they understood the motivations and intent of other humans, but because they were so focused (and rewarded for) the art, they did not spend the time to understand the consequences. They did not appreciate why a team that understood the mission, how they were going to achieve it, and how each individual could meaningfully contribute made for better art.

I started with verbal explanations of complicated human situations. I got blank stares, so I started to write before 1:1s. When the stakes were high, I stared hard at the situation and wrote and rewrote the situation, my assessment, and my recommendation — over and over. The Artist saw the work, recognized how much work I was putting into explaining situations they were ignoring, and sometimes they’d engage. Sometimes not.

The Dictator is bad because this dictatorial approach was everywhere, not just in the basement. Our 1:1s started with less than 30 seconds of pleasantries before they started the rant. It was the dictatorial rant about the most recent interesting problem, and, wow, they had opinions. My initial job was to hold on for dear life.

My approach with The Dictator was one of the most important lessons I’ve learned. Yes, The Dictator used their position to bully the conversation, but I couldn’t deny that The Dictator cared deeply about the problem in front of us. The Dictator stared hard at the problem, the challenge, the opportunity, and they saw a single detail.

The Dictator cared deeply and had no time for anyone who did not share this belief.

In the next product review, I went hard on pre-game. I reviewed the deck, found the gaps, and had them filled. I spent 1:1 time with the product manager, and I walked around downtown San Francisco with the designer to hear the backstory. When The Dictator did The Dictator thing and started to shove the conversation in a useless direction, I told them, “This path has been explored. We understand this is a flawed direction, and here’s why.” I don’t remember what we were litigating, but I vividly remember the burning look on The Dictator’s face, Oh. You care, too.

This changed nothing about The Dictator’s approach. It still felt like a constant battle, but by doing the work of caring deeply, the battle was not one-sided. Yes, this is not how you treat humans, but this is how I developed my habits to see situations where my job was to be an expert.

The Knife is… just bad. Back to the beginning, no dummies here. This is an intelligent person, and they did a good job leading a team, but they had absolutely no business attempting to manage one.

Education didn’t work. Verbal explanations weren’t brushed aside; they listened, but then they responded… about something else. Written attempts went unread. Caring deeply didn’t work either. Seeking common ground… trying to reverse engineer what this human cared about was like trying to thread lukewarm lemon Jell-O through a needle.

The Knife could lead. When they spoke to the team about topics totally unrelated to the problems ahead, we somehow learned a lesson. Our 1:1s remained bizarrely off topic. Sometimes they called with random requests that I barely understood, but I acted on them.

But the lesson was stay the hell out of the way. Let them do their work, however inscrutable.

The Essential Lessons

As essential lessons go, stay the hell out of the way doesn’t feel particularly helpful, but this is not the lesson.

Everyone is an adjustment. The person you need to be with your boss, their boss, your team, and everyone else is slightly to significantly not you. You will need to adapt how to prepare, how you communicate, and how you act with each of them. Some adaptations are trivial and familiar, but others require you to find a different perspective to help build new habits. Yes, one would hope your leader knows when to manage, but you don’t pick your bosses; you decide who you are with them.

February 9, 2026