“Good Catch.” When AI Productivity Comes With Fine Print

AI coding productivity git stats

Howdy friends!

When I was at Google, I used to try to maintain about 3,000 lines of code in changes per month. As a manager. That was my silly little trophy. Now, some managers stop writing code entirely, but I wanted to keep my hands dirty. 3k LOC/month while running a team, doing performance reviews and sitting in way too many meetings? I was proud of that.

I’m now building RiseOhana, it turns the chaos of raising kids into a game your whole family actually wants to play. Last month I checked my stats. 120,000 lines of code changed. In one month. Just me and Claude Code.

That’s a 40x jump.

Before you roll your eyes

I know, I know. Lines of code is not productivity. I’ve been in this industry for 28 years. I’ve seen the guy who writes 10,000 lines of code that should have been 500. LOC doesn’t capture design thinking, debugging rabbit holes, collaboration, architecture decisions or the hundred conversations that never produce a single line of code but make the product better.

All of that is real. Those invisible variables matter.

But 40x is 40x. That IS a signal. Even if you discount it heavily for AI generated boilerplate, even if you cut it in half and then cut it in half again, you’re still looking at a 10x jump in raw output. From one person. With no team.

Something fundamental has changed in how fast a solo engineer can ship.

The fine print

Here’s the part that keeps me honest. Speed creates a new kind of problem.

I was building the subscription management system for RiseOhana. Stripe integration, plan types, billing periods. Claude generated this:

return new FinanceSubscriptionInfo
{
    Interval = subscription.PlanType == SubscriptionPlanType.Annual ? "year" : "month",
    PeriodStart = subscription.CurrentPeriodStart ?? DateTimeOffset.UtcNow,
    PeriodEnd = subscription.CurrentPeriodEnd ?? DateTimeOffset.UtcNow.AddMonths(1)
};

Look at that Interval line. It correctly checks whether the plan is annual or monthly. Now look at PeriodEnd. The fallback is AddMonths(1). Always. Even if the plan is annual.

So if a yearly subscriber doesn’t have a CurrentPeriodEnd set yet, the system tells them their plan renews in a month. That’s the kind of bug that doesn’t crash anything. No red error screen. No failed test (if you didn’t think to write one for this edge). It just quietly gives your annual subscribers wrong information and eventually becomes a support ticket you can’t figure out.

I caught it. Pointed it out to Claude. The response?

“Good catch.”

Just like that. No drama. No explanation. Just “good catch” and here’s the fix:

return new FinanceSubscriptionInfo
{
    Interval = subscription.PlanType == SubscriptionPlanType.Annual ? "year" : "month",
    PeriodStart = subscription.CurrentPeriodStart ?? DateTimeOffset.UtcNow,
    PeriodEnd = subscription.CurrentPeriodEnd
        ?? (subscription.PlanType == SubscriptionPlanType.Annual
            ? DateTimeOffset.UtcNow.AddYears(1)
            : DateTimeOffset.UtcNow.AddMonths(1))
};

Fixed. Correct. Moved on. Like it was nothing.

The new job description

This is what I keep coming back to in these posts. The role of the software engineer is changing, but it’s not going away. I’ve written about Claude not seeing the forest and debugging the wrong thing for hours. This is another flavor of the same pattern.

AI writes plausible code. Code that looks right. Code that a quick scan might not catch. The Interval check is right there on the line above, so your brain assumes the date math follows the same logic. It doesn’t. The AI generated two lines that are conceptually related but logically inconsistent, and it did it with full confidence.

My job used to be writing code. Now my job is reading code that something else wrote, really carefully, and catching the places where “looks right” and “is right” diverge. That takes engineering judgment. That takes knowing your domain. That’s not going away.

40x is still 40x

I don’t want this to come across as doom and gloom about AI coding. It’s the opposite. I’m the solo engineer on a startup, shipping features at a pace that would have required a team of five not that long ago. The productivity gains are absurd and I’m grateful for every one of them.

But the gains come with fine print. You have to read the code. You have to understand what it’s doing, not just that it compiles and runs. You have to be the person who looks at AddMonths(1) and asks “wait, what if the plan is annual?”

Because Claude won’t ask that question. It’ll just say “good catch” after you do.

Keep on coding on, friends!


RiseOhana is my startup, a family engagement platform where parents create quests, kids share their adventures and everyone levels up together through gamified parenting and quality time rewards. Built by a nerdy dad of three who spent 28 years helping machines communicate better and decided it was time to build something that helps families do the same. If that sounds like your jam, come find us at riseohana.com.


Posted

in

by

Tags:

Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.