The AI Pair Programmer

Building ArchAIc with Claude Code partly to understand how it works and what my teams are doing, how they're using it. What does it do well, and what does it do... not so well.

Can't evaluate AI pair programming without experiencing it hands-on. Can't set policies around AI coding assistants without knowing how they work. Team leaders ask "should we let juniors use AI tools?" and I can't answer from theory. ArchAIc is my data source.


Started about a week ago. Created git repo, pointed Claude Code at the firmware, started asking questions.

A dozen PRs merged since then. Tests written from scratch. The initial refactor. Infrastructure. Display architecture. Typewriter web simulator. Hobby mess starting to look like professional software.

A week.

Timeline feels wrong. Projects like this take weeks. Git log shows it's real.

Read more →

The Great Refactor

Code worked. That was the problem.

The Arduino IDE sketch had grown organically. Functions calling functions. Global variables everywhere. Typewriter protocol tangled with AI logic tangled with LED control. Everything connected to everything.

It printed AI responses. It had a name. It worked.

But the workflow was killing me.

Arduino IDE couldn't manage the ESP32-S3-N16R8 board settings cleanly. Is PlatformIO the answer? And coding with AI meant copy-pasting. Describe a problem to Claude or ChatGPT. Get code back. Paste it into the IDE. Test. Find the issue. Go back. Describe what happened. Get new code. Paste again, or worse, manually diff.

ChatGPT had built the captive portal in minutes. Getting those changes into the actual project took longer than writing them.

Tried Cursor first. AI-native IDE. Installed it. PlatformIO extension stuck on "Initializing". Turns out the official extension isn't on Cursor's marketplace. Downloaded the VSIX manually. Installed it. Needed another extension. Downloaded that one too. Wrong binary architecture.

Gave up on Cursor. Used PlatformIO from the terminal instead.

The migration itself took all evening. In a Claude.ai chat window. ZIP files back and forth. "Here's my source code". "Compilation failed, attaching the errors". Five rounds. Fixed the errors. Zipped it up again. Sent it back. That was the last time I worked that way.

The next morning, I installed Claude Code.

Read more →

ArchAIc

Happy new year!

Thinking...  A truly happy new year to you too! May your words flow
freely and your ideas always find their perfect form.

Tell me about the new New York City mayor.

 Hmm...  The new Mayor of New York City is Zohran Mamdani, who took
office on January 1, 2026, becoming the city's 112th mayor. He is
notably New York's first Muslim and Asian American mayor, as well
as the first from the borough of Queens.

That's today's news. Printed on a typewriter from 1986. The AI searched the web, found an event that happened a few hours ago, and typed it on paper.

Will the machines replace us?
Read more →

First Conversation

Went back to FozzTexx's firmware. Read it line by line.

Three things my code was missing. His state check looked at two pins together, not just one. He buffered incoming characters in a ring buffer instead of reading and discarding. And he had collision recovery for when read and write stepped on each other.

I'd been checking one pin. Throwing away what I read. And crashing on collisions.

Fixed all three. Key presses worked.

A few days later, I finished coding the AI conversation mode. Typed a question on the typewriter. Hit return.

Read more →

Standing on the Shoulders of Giants

First code. Two sketches. One just listened. The other tried to talk. Neither worked well. But I could see signals on the bus.

Swapped the CD4049 for a CD4050 I ordered. I'd been using the inverting buffer because it's what I had in my stash, negating the signal in software. Worked, but added confusion to every debugging session. The CD4050 passes signals straight through. One less thing to think about.

Next day I wrote a dozen more. Tried interrupts, then polling, then fuzzers that sent every byte from 0x00 to 0xFF to see what the typewriter does. All based on FozzTexx's documentation, from reverse engineering the communication between the typewriter and the PWP. Getting closer, but nothing reliable.

A screenshot of a logic analyzer connected to the typewriter pins
FozzTexx documenting the signals sent between the typewriter and the PWP

Day after I fried the typewriter, FozzTexx replied on Mastodon. "What model Smith Corona do you have?"

Told him what had happened. SD-250 Spell Right II. Fried it by shorting pin 3 and pin 4. Turns out it could also function as a smoke machine.

He created a GitHub repo and shared the schematic for Typarona, his Smith Corona project - an adapter bridging the typewriter and a modem - to get it to behave as a teletype able to dial into his BBS.

Hardware schematics only. Said he'd been in the middle of a massive firmware rewrite two years ago and needed to hunt it down.

Found it that afternoon. Pushed it to the repo. Said he's not sure if it even builds.

Didn't matter. I could read it.

Read more →