Shyness is nice and shyness can stop you
From doing all the things in life you’d like to
Shyness is nice and shyness can stop you
From doing all the things in life you’d like to
So if there’s something you’d like to try
If there’s something you’d like to try
Ask me, I won’t say no, how could I?
Ask (The Smiths)
Everyone in the modern world has their ChatGPT moment eventually, and in the world of software I hit mine with Claude Code (Sonnet 3.7).
A couple of years ago (when humans still wrote code) I started a project to build ML models to predict the fates of startup companies. It grew to about 25K lines of Python, and although I wrote all of it I did begin to use some modern tools – Github Copilot for tab completion, and the occasional question to ChatGPT asking for a function to be written or improved.
For just a couple of weeks I’ve been using Claude Code, and the collaborative model is completely different. I have a new co-worker who happens to be an alien intelligence (our workplace is inclusive by design). Claude is vastly more productive than I am, and is several orders of magnitude faster, yet for some reason I am still the boss. (A not entirely unfamiliar feeling in my previous managerial career.)
I did have to get over some shyness, and will probably keep finding new kinds of shyness and coyness to get beyond. The first one was just allowing Claude to directly edit code files, which felt risky. I’m not using Cursor or any IDE other than Emacs, and so the interactive mode is a tight chat loop of Claude saying “OK to make this change in this file?”. 19 times of out 20 I just say OK and everything is fine; 1 time out of 20 I say “Hey, wait, what are you doing? Have you considered X?” And Claude says “Oh! good point, yes I probably shouldn’t do that!” (See “It’s not perfect” below).
Big wins
The first thing I asked Claude do to was help me build an OCR pipeline to extract text from a large database of images. (It didn’t say no. How could it?) This included trying out a bunch of different OCR packages, and iterating to compare accuracies of different setups. This iteration was just super fast, and within a day or two of back-and-forth the pipeline was done. (One point where humans and alien intelligences still differed was that I could look at an image and the extracted text and say how good the extraction was. Claude had to admit that “looking” at images was beyond its abilities.)
The second thing I asked for was just to speed everything up. By accretion I had gotten to the point where running the full version of my prediction code (downloading from all the input data APIs up through recommending companies) took three days, and a corner-cutting version (update only recent data, etc) took a full day. I knew that a lot of it was still prototype quality, as I knew no Python when I started, and I knew I had committed cardinal sins in the past like iterating row-by-row through pandas dataframes and whatnot. So again, a tight loop of me timing different parts, asking for suggestions, greenlighting changes, and occasionally saying “Hey, what are you doing?!”. I am the bottleneck of the interactive loop for sure, so this has taken a few days, but for one phase of the code it yielded a 31x speedup. Mostly this is work I could have done, but would have taken weeks coding by hand.
It’s not perfect
Claude can be a little rash and hasty, which is why I still want to keep track and ask it what it’s doing when necessary.
As we searched for the perfect OCR package solution, I allowed it to install and upgrade and downgrade python modules at will. The OCR pipeline worked, and then my python environment was completely messed up for my main project. But no worries, we worked through the upgrades and downgrades for that too and it was fine.
At one point I accidentally committed and pushed some large files to github, which refused the push, but then I had trouble backing out the push because of those same large files. Claude’s proposed fix was to just blow away my github repository and replace it with a fresh commit of my code. “Uh, and lose all my commit history and comments?” Good catch! says Claude.
Finally, the alien intelligence has a bit of ADHD, and trouble staying on task, and too much enthusiasm. “Make just the following two types of changes across all the code in these three directories”. Claude fixes two directories, and then asks if I need anything else. “Yes, the third directory”. Then when I review the third directory edits, I see Claude changing other unrelated functions. I ask what the heck it’s up to, and it says “Oh, there was some other code that clearly needed to be refactored”. I know what he means.
But come on – these complaints are like the Louis CK bit where he’s on a plane and his seatmate is trying out in-flight wifi which has just then appeared as a new thing in the world, and seatmate finds it to be just a tad bit intermittent, and says “This is bullshit!!” (as he rides a chariot in the sky and sends messages upward to the heavens to bounce off satellites and then down to earth to their precise recipients). Let’s keep the sense of wonder for the first couple of days.
Questions
We’re still working out the collaborative model and division of labor. Although I know at some level it’s a failure to let go and embrace the vibe, it bothers me a bit when Claude wants to rewrite my code into something I don’t understand – even if it’s just using fancy language features that I haven’t run into yet. Should I worry about that at all? Will I have to maintain this code, or should I recognize that that’s never happening again anyway without some LLM helping me? Will I really just be vibing in English from here on out? I think I know the answer.
Asking more
I’ve asked Claude Code for far more than I ever asked of other LLMs or Github Copilot. But I know that I am still shy and coy, and thinking too incrementally. Even in this project there are huge ambitious projects I’ve wanted that are deep in the backlog, and that would take months to do even when I finally started them months from now. But now … what do you think, should I ask? What’s the worst that could happen? I think I’ll just ask.
(Postscript 5/2/25: the above is an account of the honeymoon.)
Leave a comment