AI raises the floor for weak engineers — but widens the gap
- https://www.youtube.com/watch?v=rTMRlqT8Q8c
- Original title: I hate that this is true
Reacting to Sean Goedecke's "AI makes weak engineers less harmful," Theo argues AI raises the floor: the worst PRs are now functional-LLM-quality instead of catastrophic, because the engineers who used to ship nonsense lean on Claude Code. But the real split isn't good vs bad — it's motivated vs unmotivated. Newcomers who use AI to learn faster curve straight up to god-tier; the lazy who use AI to avoid learning flatline. The gap between top and bottom engineers, historically small, is about to widen massively, and "life is about to get very rough for the bottom 30% of engineers."
The floor is rising, not just the slop
AI steers weak developers toward better technical decisions (less Flutter/JS shoved where it doesn't belong). Worst-case PR is now a "standard LLM PR" — wrong in places, baffling in others, but functional line-by-line and not obviously broken. Agents push back on obvious errors (caching without user-specific keys, infinite loops, leaked file handles) though they still miss subtle codebase-wide bugs. Working with the weakest engineers now feels like talking to a Claude/Codex instance over Slack — annoying latency, no visibility into reasoning, but better output than that engineer alone.
Engineering gaps, the Mythical Man-Month, small elite teams
Problems come from quality gaps, not just weak engineers — great engineers get frustrated and leave when forced to work around much weaker ones (retention killer). Theo shows throwaway PRs ("no intention of merging") so his team sees his idea then builds it properly. He laments new engineers aren't taught the Mythical Man-Month: adding people to a late project makes it later. Bigger teams = more chances to get in each other's way, which is why well-paid small teams keep winning. His own value at Twitch was being the rare addition that sped things up by trimming scope to hit deadlines.
The blog-post horror story
A two-week saga: a "principal engineer" who solely ran the ModView announcement blog converted 4K MP4 demos into 200MB GIFs (~1GB page load), then re-uploaded to a half-broken Twitch VOD embed, and finally pasted the literal plain text of a video element. Theo spun up a public S3 bucket and wrote the HTML himself; still failed. He crashed out hard enough it cost him a promotion and pushed him to quit. Point: Claude Code would have done better than this isolated, unchecked engineer.
Two axes: experience vs ability, and the prodigy/Mel example
Don't measure raw coding skill — measure it relative to time in the field. Mel came from game dev (Zig game engine), had ~1yr experience, built complex WebRTC/admin/recording systems for Ping, yet didn't know what an "endpoint" was (never needed it — tRPC made everything function calls). The same "what's an endpoint?" question warrants firing in one quadrant and admiration in another. Motivated, bold learners (Mel; Yash, the high-schooler who reverse-engineered Webpack bundles) disproportionately benefit from AI as an "infinite learning machine."
Throwing code away, and the anti-React archetype
It's easier (and guilt-free) to tell an LLM "this sucks, redo it" than a human whose feelings get hurt — Theo guilt-merged human PRs before, never with LLMs. Net-negative engineers who distrust AI or hold rigid wrong beliefs (the "anti-React devs" who don't ship software) will force bad takes into agents that sycophantically comply, reinforcing the wrongness. Capable engineers have enough taste to catch AI errors, so "thin wrapper around Claude Code" is only an improvement for the already-weak. Closing advice: keep a daily learning journal, ask the AI more questions, never stop learning — if your goal is to see what you can get away with rather than grow, leave the field.