Skip to main content

Productivity Posts

Automated TDD with Claude Code: Testing Strategy for AI-Assisted Engineering

Every project I hand to Claude Code starts the same way: I write the testing strategy before the first line of application code exists. Not because I am a TDD purist (I have skipped tests on personal projects like anyone else), but because I learned the hard way that an AI agent without test constraints will produce code that works today and breaks tomorrow. The agent is fast, confident, and has zero memory of what it built yesterday. Tests are the only thing that survives between sessions and keeps the codebase honest.

Read more →

The Leverage Factor, Part 2: Defending the Numbers

The Leverage Factor: Measuring AI-Assisted Engineering Output generated more direct messages than anything else I have published. Some of the feedback was enthusiastic. A significant portion was hostile. "Exaggerated." "False." "No way those numbers are real." Fair enough. I published extraordinary claims with data but without enough context for readers to evaluate the methodology. This article fills that gap. I am going to take specific time records, break them apart, defend the human estimates with engineering detail, and then show that the original leverage calculation actually understates the real multiplier.

Read more →

Agentic Coding, FOMO, and Flow State Addiction

Last Monday I went into my office at 7 AM to kick off a few Claude sessions before taking the trash cans to the street. I sat down, wrote three prompts, and started reviewing the first batch of output. At noon I looked up and realized the garbage truck had come and gone four hours ago. I had not eaten breakfast. I had not taken the trash out. I had been sitting in the same chair for five hours without standing up, and the only reason I noticed was that someone texted to ask if I was still alive. The work was going so well that stopping felt physically wrong.

Read more →

Agentic Coding and Decision Fatigue: The Cognitive Cost of Supervising AI

Recently during heavy Claude Code usage, I started noticing an uncomfortable trend. At 8 AM I could run three agent sessions at once, spot a bad abstraction in a 200-line diff, and push back on architectural shortcuts without hesitation. By 3 PM the same work felt like wading through concrete. My prompts got sloppy. I started approving diffs I would have questioned six hours earlier. Twice I caught myself closing a session just to avoid making a decision about it. Once I even prompted the following: "I know you can do better than this. Be thorough and just get it done, bro." The work had not gotten harder. My interest had not faded. I wanted to understand what had changed between 8 AM and 3 PM inside my skull.

Read more →

Giving Claude Code a Voice with ElevenLabs

I spend hours in Claude Code every day. Long sessions where I am reading, thinking, switching contexts, and occasionally glancing at the terminal to see if the agent finished a task. The problem: Claude Code is silent. It finishes a 10-minute build-and-deploy pipeline and just sits there, cursor blinking, waiting for me to notice. The whole concept here was inspired by J.A.R.V.I.S. from the Iron Man films, voiced by Paul Bettany. Tony Stark's AI assistant announces status, flags problems, and delivers dry commentary while Stark works on something else entirely. I wanted that. An AI assistant that speaks. That announces when it starts a task and summarizes what it accomplished when it finishes. Like a competent colleague who taps you on the shoulder and says "that deployment is done, here's what happened."

Read more →

The Leverage Factor: Measuring AI-Assisted Engineering Output

In finance, leverage is the use of borrowed capital to amplify returns. A trader with 10x leverage controls ten dollars of assets for every dollar of equity. The principle is straightforward: a small input controls a disproportionately large output. The same principle now applies to software engineering, and the ratios are significantly higher than anything a margin account offers.

Read more →

Overlooked Productivity Boosts with Claude Code

Most engineers who adopt Claude Code start with the obvious: "write me a function," "fix this bug," "add a test." Those are fine. They also miss at least half the value. The largest productivity gains come from activities engineers either do poorly, skip entirely, or never consider delegating. After months of tracking leverage factors across every task I give Claude Code, the data reveals where the real multipliers hide. Surprisingly few involve writing application code.

Read more →

Three Monitor Setup

Since going full-time as an iOS developer, I have worked from home exclusively. Sometimes I am asked why I am not open to travel. Beyond personal reasons like wanting to be home to spend time with my family, the most important reason is that my home office is designed for maximum productivity. My primary machine is a 2013 27" iMac with 32 GB of RAM. I use two external 27" LED Cinema Displays - one in portrait orientation - and I have a 15" Retina MacBook Pro open and running all of the time also. With this setup I can get a lot done very quickly. If I was to travel with just the MacBook Pro, it would significantly reduce my productivity. Simply put, my clients get the best return on their investment in my time when I work at this desk.

Read more →

On Telecommuting

There was some kerfluffle today about telecommuting. Yahoo’s new CEO, Marissa Mayer, has recently banned employees from working from home. Apparently, she believes that working from home decreases productivity.

Read more →

Going Paperbackless

Ah, it feels good to be writing casually again. As some may know, I recently gave the Kindle for iPhone app a spin. I bought the latest book from Lincoln Child - Terminal Freeze - and I finished reading it on the iPhone last week. It actually is the first book I've finished in over a year. The reason I was finally able to start and finish a book is because when the book is on the iPhone, it's with you all the time. I was able to sneak a page here and there and almost everywhere until at last, there were no more pages. It was a bit different and I suspect the actual Amazon Kindle device would be a better experience but the simple fact is, I was able to finish a book because it was in electronic format on my phone.

Read more →

Bid Adieu to Narrative in Production

All of my websites are in the process of migrating away from my homegrown blogging software - Exposition / Narrative / Rendition - in favor of the latest version of WordPress. The reason? Simply put, I am much more interested in blogging than the building of blogging software. I originally created Narrative because there wasn't a good blogging package for ASP.NET. Now, almost 6 years later, while I still work as a .NET architect, I spend all of my time on a Mac, which means I have access to a LAMP stack, etc. Anyway, you'll see a lot of changes here due to the conversion, the first of which is that comments are now open on all posts going forward.

Read more →

MacBook Pro Ultimate in Alaska

I ordered a new MacBook Pro last week, the day the new hardware refresh was released. Actually, I spent a bunch of time running around to Apple stores to see if anyone had one in stock but no one did so I had to order mine custom from the Apple store.

Read more →

Thoughts on the MacBook Air

Apple released the MacBook Air today. It is the world's thinnest laptop. At it's thickest, it is thinner than any other laptop's thinnest. It is a nice boon for the executive traveller who is tired of lugging around extra batteries and a heavy laptop. The MacBook Air weighs only 3 lbs. and has a battery that lasts 5 hours. That's a long battery life, really. My work laptop (not a Mac) has a 30 minute battery life and weighs 10 lbs. The MacBook Air has a full-size keyboard and a bright, clear 13.4" LCD screen.

Read more →

Imperial Parking Does it Right!

When I commute to a client downtown, I have to take the Metra train. When I take the Metra train, I have to park in the Metra parking lot. Parking there used to cost $1.00 per day but was recently increased to $1.25. So instead of simply slipping a dollar bill into a payment slot, now I have to find the dollar bill and change. Who carries change in their pockets in the morning any more?!?!? Not me. If I use cash during the day and end up with change, I put it into a big change can at home at night for future deposit into the bank. I certainly do not grab a handful of change from the can on the way out the door in the morning, hoping to snare a quarter I can use for my parking fees.

Read more →

GMail Now Truly Mobile

Finally! You can actually get your GMail on a mobile phone now. Just hit m.gmail.com and log in. Type that URL into a regular PC or Mac browser if you wanna see what it looks like on mobile. About time, Google.

Read more →

The Service Economy

Recently, I realized that most of my monthly bills are for recurring services. Not including landline telephone bill, electric bill, or gas bill, my monthly service charges add up. These are the services I use which are business-related:

Read more →

Other Ways to Pass the Time on the Train

I like writing on the train, as mentioned in this previous post. However, it's nice to take a break and do other things sometimes. Here's a list of the other ways I pass time on the train.

Read more →

Writing on the Train

Mentioned in earlier posts that I'm commuting to the Loop now from West Dundee. Almost 3 hours on the Metra Milwaukee District West Line. Every day. Five days a week. Fifteen hours a week on a train. Longer commute than anyone should have. Ever.

Read more →

Using GMail for Lists

I've read some articles on various blogs about how people are using GMail to maintain certain lists. GMail allows the "+" syntax on email addresses. For example, the two email addresses "potsie+Incubate@gmail.com" and "potsie+Goals@gmail.com" both get the email to "potsie@gmail.com". However, the "+Incubate" and "+Goals" part of the address allows you to set up rules in GMail which automatically apply labels to incoming messages. So, continuing the above example, Potsie could create Incubate and Goals labels in his GMail account. Then he can create the appropriate rules. One rule would automatically apply the "Incubate" label to any incoming emails which have been sent to "potsie+Incubate@gmail.com", for instance. It is easy to have the rule automatically archive the message also so that you do not even have to see it again. This is useful for reference items and other information which needs to be collected but not reviewed until some time in the future.

Read more →

On Calling in Sick

Got an issue with how people think about calling in sick. So many Americans have this attitude that you shouldn't call in unless you're basically barfing up a lung. "Tough it out." Get into work. Support the team.

Read more →

2004 New Year's Resolutions

Yes, yes, I am taking the unusual step of sharing my NY resolutions with the whole world. I have no issues with this because I plan on sticking to all of them and letting others know what they are just further cements the commitment. So, here they are:

Read more →