Peter Kellner

Peter Kellner

@pkellner.bsky.social

Pluralsight author focusing on React. Silicon Valley Code Camp organizer.

2.3K followers579 following190 posts

Learnings From Coding with AI (Claude Code): This may be my last in this series (if anyone is listening). At ReactConf, I learned a lot (including from @leerob.com) and have switched From CC to Cursor. So far, the honey moon is going great! I need a new name "Learnings From ??:" Suggestions?

Learnings From Coding with AI (Claude Code): I wish Claude Code was like a junior programmer in that when you teach it something, it remembers the technique for the next time. for me, it's like groundhog day, everyday.

Only in New York, at JFK checking in, told the lady that my extra bike charge of $200 was nothing compared to the hotel for 450 last night. She said they should’ve bathed you for that much.

Learnings From Coding with AI (Claude Code): "Are you again adding useEffect when you should be calculating values form existing state, and understanding that state changes cause un-needed re-renders?". I'm so tired of saying this even though I have it clearly in my `claude.md` file.

Learnings From Coding with AI (Claude Code): When seeing context available at the bottom get low (like less then 5%), don't think about asking another question that might lead to "compacting...". Nothing ever comes out right for me after compacting. Do: /clear and restart conversation fresh.

Learnings From Coding with AI (Claude Code): I use to have more faith and even wanted a more headless experience with CC. Now, I've learned to watch it carefully and constantly type feedback as it does stuff. It apprecaites it :). CC: "now I understand the problem better, thanks for clarifying"

Learnings From Coding with AI (Claude Code): "I see the issue! The isPaused prop only affects the DISPLAY - it doesn't actually stop the status checking". Always be extra extra clear when asking for updates. It just changed the button labels, not the functioning

Learnings From Coding with AI (Claude Code): Does it bother anyone else that CC iterates until it gets a successful compile and then declare it working? (that is, when node and typescript at least). I have to explicitly tell it to write tests which it often doesn't like to do.

Learnings From Coding with AI (Claude Code): "The problem is in phase1-metadata-discovery.ts. Someone added a misguided "optimization" that blindly adds all child folder metadata paths". Guess who "someone" was

Learnings From Coding with AI (Claude Code): When I find a code problem, I make CC build a test to demonstrate the problem and the failure. Then I make it fix that test to work. Then iterate on this: " Hmm, my test isn't reproducing the exact bug."

Learnings From Coding with AI (Claude Code): Claude Code does not think like us. I find it often undoes what I asked it to do in a previous context if my next request touches that. It doesn't remember why it did, it just does again as if it were a robot (wait, it is a robot)

Me: Never ever ever have code that "adds a small delay". that is just really bad programming style, indicating the developer is an idiot and lazy which you are not. Claude Code: You're absolutely right. Let me fix this properly by removing that terrible delay.

Learnings From Coding with AI (Claude Code): If you are using Claude Code (like me and paying $200/month), and you are not using context7, you are missing out on the lastest features in the packages you use (like React, Node and Next.js)

Who (besides me) did not know that with @nextjs code like this: import Image from 'next/image' export default function Page() { return ( <Image src="s3.amazonaws.com/my-bucket/x.png” width={500} height={500} /> ) } The image goes thru your own server?

Learnings From Coding with AI (Claude Code): CC can create complex architectures and still needs humans to help. I posted a long paragraph of good senior guidance, and it responded: "You're absolutely right! The current architecture is indeed convoluted. Your proposed solution is much cleaner:"

Learning From Coding With AI (Claude): Turns out openai o3 now offers zip downloads for individual files. Big time saver! I don't think Claude can do that yet. Especially for things like REST API routes in next.js. Win for openai!

Learning From Coding With AI (Claude): Code generation often gives you more than you ask. I just had ai build me a simple wrapper around loading data so I could refresh easily. Claude decided to see if my query changed, and if not, don't refresh. Others may have changed the data (my point)

Hey @ricky.fm , are you taking "issues" or bug reports with good repros on ViewTransitions? I'm loving them but have some odd behavior that is likely me somehow, but on the outside chance it's not, love to file a clean issue (not completely isolated into simple example, but will if helps).

Learning From Coding With AI (Claude): It's easy to get lazy and watch Claude generate engineering debt. I keep adding new rules, but I'm up to over 37 rules now and that seems to be more than it can follow. It violates them all the time compared to when I had fewer.

Learning From Coding With AI (Claude): Always double check that AI doesn't throw things away. me: what did you do with all the nice compare stuff claude: You're right, I inadvertently removed the nice comparison view functionality...

Learning From Coding With AI (Claude): What AI excels out is things like "create a react component that views JSON in a collapsible way only showing shorter content directly, but providing an expando icon for larger sections.

Learning From Coding With AI (Claude): Todays aha is that when reviewing React code Claude created, I find it odd, and not at all best practices, but gets the job done. For example, it sprinkled in getElementById calls thought a form. Clever, but very odd.

Learning From Coding With AI (Claude): OK, not just about Claude. I've found it useful to have both OpenAI and O3 as well as Claude. O3 tends to be better at "just fix one file" where as Claude seems to be better at integrating a bunch. When one is over limits, I go to other and work on diff code.

Learning From Coding With AI (Claude): AI can get lazy with variable naming causing major code debt if not careful. For example, I had a have tables lessons and courseItemLessons. Claude decided to do this: const lessons : courseItemsLessons[]; Hours of grief to fix updated logic later.

Learning From Coding With AI (Claude): AI will generate a huge amount of insecure code without even a note telling you that. I just asked it to create a bunch of CRUD REST API's, and then it occurred to me, none of them are secure. Note to self: Pay more attention!!!

Learning From Coding With AI (Claude): Stick to popular patterns because AI has the most experience with them. For example, I love to CRUD with React RSC's, but AI is so so much better at building REST services then it is React Server Functions and Actions.