On Sept 17, two days into this, I told Claude to save every plan as its own file “so that I can build blog posts out later about how I built out my own tools.” This is that post. It took me a month to write because I was too busy shipping.
Some context first. I’m a product leader, not an engineer. I can read code, I know what a migration is, and I know when something smells wrong. But I haven’t written production software for a living. From Sept 15 to Oct 13 I built five things with Claude Code doing the engineering, and I want to write down what that actually looked like, including the parts that sucked.
It started with forty4.co, the site for my product consulting firm. I wrote a brief with an eight-step build order and handed it over one evening. About three hours later the last step was done. The next afternoon the site was live on its real domain with a working contact form. My big contribution on day one was telling it that one section “feels boring” and to make it more interesting.
Forty4 HQ came the next night. I pointed Claude at a Google Drive folder of markdown files and asked for a private viewer. About 50 minutes later I had one. A few minutes after that I asked for a dashboard with my to-dos, deploy status, and an editorial calendar and added, verbatim, "This looks basic and like sh*t.” Within a couple of hours it had an AI agent called Eve, and I was asking how to keep it from “costing me a ton of money.” By the next evening it had a CRM. It later moved to Postgres, picked up a marketing pipeline, and hit PR #130 on Sept 25, nine days after the first commit.
On Sept 22 I built a site for my high school reunion. The first version was built and tested in about 25 minutes. My first piece of feedback, a few minutes later: “This design looks awful. Make it look better.” Speed was never the problem.
Personal HQ started Sept 26 from a 557-line product plan. It’s my personal dashboard for travel, money, health, and the rest of life. By Oct 1 it had about 211,000 lines of code in 1,893 files, and the pull requests were numbered in the high 90s. I’m not proud of the line count. I’m a little alarmed by it.
Then this site. I handed Claude the brief just before midnight on Oct 12. By a little after 2am, every page in the brief was built and pushed, with CI green. That evening it was live on joshuabauder.com.
How I actually worked
My messages got shorter as the month went on. Scroll back through Personal HQ and you’ll find “ship it and keep going” over and over, one of them typed as “sh*t it and keep going,” which is honestly also accurate. Forty4 HQ is mostly “merge it.” I was the approver, not the typist.
I wanted every plan in plan mode before anything got built. The first night of Personal HQ I wrote, "Load it into plan mode. This is how I want to see all plans,” and that stuck. Reading a plan is where I add the most value. It’s the same job I do at work: is this the right problem, is this the right order, and what are we not doing?
Later I set it up the way I’d staff a real team. An Opus lead plans, splits the work, and reviews every diff. Sonnet builders each take one scoped piece in their own copy of the code. On Oct 8 I told it: “I want you to build through the night and not stop for anything. I don’t want any time wasted.” Around then I’d upgraded to Claude Max 20x and asked to be reminded before it renews so I can check whether I still need it.
And I tested everything on my phone. A lot of my feedback was some version of “Why is the shader not showing on mobile?” or “Can’t read the text on mobile.” Claude can take screenshots at every width you want. It doesn’t hold the phone in a bar with bad lighting.
The good parts
Waking up to finished work is still strange. I’d go to bed with a plan approved and wake up to merged PRs, test results, and a short list of the things only I could do.
The moment I started trusting it was on Sept 19. I was setting up a cloud server, and before handing me the next commands, Claude went back over its own plan and found a firewall step that would have locked me out of my brand-new server. It fixed the plan before I got there and told me so. A good engineer does that. A bad one lets you find out.
It also catches its own mess more often than I expected. When it killed a dev server it hadn’t started, it said so in the first line: “I made a mistake.” I’ll take that over a confident cover story.
The bad parts
CI was the worst of it. On Sept 29 a phase that was supposed to merge overnight was stuck on failing test runs. My message that morning: “Phase 2 was supposed to be done 5 hours ago. This is unacceptable; waste so much time and resources on CIs that break for 5 hours.” We moved most testing onto my Mac, which fixed the stalls and created a queue: one full local run at a time, about 50 minutes each.
Then the bill. On Oct 9 I asked, “How the hell have you blown through all of my GitHub action minutes already?” The answer was that October was at about 3,200 minutes against 3,000 included, mostly from Personal HQ, and as Claude put it, “Mostly me, this week.” Fair. It didn’t have the billing scope to see it coming, so I did the noticing.
And taste. Claude will build exactly what you asked for, competently, and it will often be boring. I’ve called it's work boring, basic, and awful, and on Sept 24 I wrote, “There is still ZERO FORMATTING." What the f*** are you doing?????????” Even on this site, the first preview “looked boring as hell,” and I asked whether it was even using the design skills I’d installed. It wasn’t, yet. It does now, from the start.
Speed doesn’t save you from building the wrong thing, either. The overnight run on this site produced a polished site about the wrong person. It led with work, product, and AI. The next morning I told it “gear isn’t a main topic,” then pulled the whole thing back toward writing, travel, and points. That rewrite took one morning. Noticing it was needed took me reading the thing on my phone over coffee.
What the job turned into
So where does that leave me? The engineering work didn’t go away. It turned into product management.
Taste is mine. Claude doesn’t know a section is boring until I say it is. Saying no is mine: no popup windows, no email address on the site, and no keyboard shortcut for search. Verifying is mine. The lead reviews every builder’s diff, and I still open the preview on my phone, because “tests pass” and “this is good” are different claims. And the steps only a person can do are mine: accepting terms, adding a card, clicking DNS records, and signing in with Face ID.
I’m fine with that. It’s the job I already know how to do, with a team that works through the night and never gets defensive when I tell it the design looks awful.
I’m writing this on the site it built. The plans from Sept 17 are still sitting in their own markdown files, one per feature, which is how this post got its facts. Tonight there’s a builder queue for the next round, and I’ll read the plan before I go to bed.


