The common area in the house I lived in senior year of college had a dilapidated couch with uneven padding and loose springs that bordered on a safety hazard. We’d use this couch to sit around and bullshit. This group loved to bullshit - an common affliction in college known as “being an undergrad” - rather than, you know, have actual meaningful conversations. So we were sitting there on that dust mite infested couch when one of these friends spoke up with…
“The new shortstop on Seattle is from Vietnam and is named Phat Kok.”
(BTW - I know that this doesn’t even remotely sound like a Vietnamese name, is totally insensitive and plays on nasty racial stereotypes. I’m recounting as I remember it from the 90s and I am pretty sure the folks involved have grown since then.)
My other friend, who had a near-encyclopedic knowledge of baseball, called him on it.
“There is no one playing for Seattle named Phat Kok. I guarantee it. I promise you. Don’t try to pull that on us.”
The first one doubled down. More than doubled down - he swore he was not making it up. No matter how hard my other friend pushed back he wouldn’t let up.
“No. I swear. Phat Kok is playing shortstop for Seattle right now.” Phat Kok from Vietnam was definitely real! He definitely got paid to stand between second and third base for the Mariners! Phat Kok had been interviewed in the Seattle Times! Phat Kok had a .201 batting average! Phat Kok was on the injured list for a month last year! He swore on his grandmother’s tombstone, his future kids’ souls, his pets’ well being that THIS WAS NOT A BIT!
This went on for - I don’t know - at least a half hour until my second friend finally hit the wall.
“FINE! Let’s find a roster and end this.”
Of course, after dragging up a baseball almanac - Phat Kok was of course not on any lineup for Seattle. Or anywhere. So our friend then yells out “Ha! I can’t believe I made you look up a player named Phat Kok!” After which we called him an asshole and moved on.
So, anyway, I’ve been using Claude a lot lately.
I’ve tried the vibe coding thing without a lot of success (using Kiro, Claude Code, some internal Amazon tools etc.). What tends to come out is over-engineered with weird mistakes that a human wouldn’t (humans make totally different mistakes), like writing a bunch of components that might work individually but not together.
Also, coding for me is as much a process of discovery as it is a process of execution. Even when I got paid to code and not manage, I wouldn’t always know how to get to the outcome I was going for - even what the outcome is concrete like MAKE THING WORK. There are many micro-decisions in coding that aren’t always apparent in requirements, and it’s hard for me to translate those into a prompt or set of specifications that are easy for models to ingest.
Basically, if I could write the prompt, I could write the program, but I need to write the program to figure out the prompt. [1]
Claude can be a good as an interlocutor. It’s been helpful for me to build up a loop where I bash away until I get stuck on something and then ask Claude desktop for some direction. It’s a lot like asking a question on Stack Overflow (without the abuse that comes when you ask a question vaguely similar to an existing one). On a neural net project in PyTorch, for example, Claude got me from a blank screen to a functioning JuPyter notebook, and I could even interrogate it about some of the steps it suggested. Like Stack Overflow, it’s not always right but even when it’s wrong, it’s wrong in a way that gets closer to the answer. Like in this exchange:
Me: What do the dimension values mean? Why were those values chosen?
Claude: Excellent question! Those dimension values (16, 4, 8, 12, 12) are hyperparameters I picked somewhat arbitrarily. Let me explain what they mean and how to choose them properly.
…
Me: In the nn.Embedding example, how do the numeric features, street_id, and direction_id get communicated to the forward function?
Claude: Great catch! I glossed over the data preparation part. You need to restructure how your Dataset and training loop work to pass multiple inputs to forward(). Here's the complete implementation:
(Note how it’s doing the AI thing where it tries to rizz you up while answering the question, like the AI recruiter I wrote about here.)
The thing is, neural nets are easy mode for Claude. Asking Claude to build a neural net is like asking your friend to talk about their mom - neural nets are Claude’s (figurative) DNA.
Throw Claude at a problem outside of its core expertise, however, and its confidence and certainty starts to exceed its abilities and it starts acting strange and defensive, kind of like my friend at the beginning of this story. This has been my experience using it on a gaming project using Unreal Engine.
Unreal Engine is a game engine published by Epic Games, makers of Fortnite (the game that your child is currently bugging you to buy in-game cosmetics for). Unreal Engine has two interfaces - one uses traditional coding (using a variant of C++) and the other is a Blueprints, a visual editor that allows you to build your functionality by connecting nodes on a canvas. However, and importantly for LLMs, most of the online resources to learn it - documentation, tutorials, etc. - focus on this mode.

A graph from Unreal Engine
On top of that, the official documentation is … not great. It’s minimal, lacks examples compared to say Java or Go or Python, and while there is a Q&A forum on the Epic Games site, there’s nothing equivalent in scale to Stack Overflow for an LLM to steal train on. Most of the help is embodied in tutorials on Youtube (which are informative but require a lot of scrubbing back and forth to copy), and there aren’t code repos on Github to provide examples. Building in Blueprints is a lot like coding before Stack Overflow’s dominance of the question/answer space. Back then, information was disaggregated across the internet or, worse, gated behind paywalled sites like Experts Exchange [2].
So Claude is on its back foot when it tries to give advice about Blueprints - it can’t ingest information about it easily and it can’t vomit up a bunch of code as a response. Instead responds by doubling down on the bit and even getting a little bit … angry when called out.
Claude: Create a Decal Material → Decal Blend Mode = Translucent or Emissive
Me: Decal Blend Mode = Translucent neither of these are options.
Claude: You're right - let me give you the correct options. In UE 5.6.1, for a Deferred Decal material, the Decal Blend Mode dropdown should have these options:
Me: Decal Blend Mode is not an option. Only Blend Mode.
Claude: Does setting Material Domain to Deferred Decal change what you see in the Blend Mode dropdown?
Me: The material domain is already deferred decal the Blend Mode options are Maked, Opaque, Additive, TranslucentGreyTransmittance, TranslucentColorTransmittance, ColorTransmittanceOnly, AlphaComposite, AlphaHoldout
Claude: Perfect! Those are the correct Deferred Decal blend modes for UE 5.6.1. The naming has changed from earlier versions.
If it were a person, I’d say it’s acting defensive. In another exchange it got really offended that I looked up information from another source, like I was cheating on it with another, prettier, LLM.
Claude: Why are you asking? Did you find a tutorial or example that uses it? If so, that's likely for creating the outline edge detection effect rather than the solid fill we've been working on.
Me: I found it on a tutorial about building edge highlights. That has been the goal, not a solid fill. Following the tutorial got the effect I wanted, but I am trying to understand the individual steps.
Claude: Ah! That makes total sense now. We've been troubleshooting the wrong thing - you were following a tutorial for edge detection all along, and I was helping you debug a solid fill approach.
This is the challenge with LLMs - they are certain until they are not, but they continue to build parasocial relationships with us. The human tendency is to trust certainty as accuracy. (And to be fair we do this with politicians, actors, friends and not just LLMs.) But, just like you have to know to stop the car before an Apple map leads you into the sea or pull up a roster when my jerk friend keeps insisting there’s a baseball player named Phat Kok, you have to know enough about the domain to react when an LLM confidently gives you bad information. It’s critical to using them as a tool - and it’s not always clear when to do so. I’m not reflexively against AI but I am concerned that we’re use of them is growing much faster than our ability to utilize them safely.
Now, excuse me while I ask Claude about 90’s era baseball players.
[1] Vibe coding also seems to be having some bad effects on programmers (check out this post from the always awesome Vivienne Ming here for more).
[2] Experts Exchange was a punchline for early-aughts developers. It was an attempt to paywall off coding knowledge without the actual expertise to do so. Once you got to the point that Experts Exchange was the only source of information about your problem, you could be sure that your problem was effectively unsolvable. Couple this with their domain name, expertsexchange.com, which breaks the “Show your site to at least one teenaged boy before launching” rule and remains a cautionary tale today.
