The happiest engineers right now are crushing years-old migrations solo with AI. It works because everyone already agreed the work mattered.
That list runs out. Then what?
tern.sh/blog/volume-...
Posts by Tern
Yegge nailed it: AI turns your workday into pure decisions and it drains you.
What he missed: when your whole team speeds up at once, nobody can track what's changing around them. The fix isn't fewer hours — it's making the system legible.
tern.sh/blog/volume-...
Your backlog is disappearing because AI made the easy decisions obvious. Congratulations.
Now you need to figure out what to build next in a codebase that changed faster than anyone's mental model of it.
tern.sh/blog/volume-...
AI teams go through three stages: volume (ship more), ambition (do harder things), clarity (figure out what's next).
Most are stuck at one. The interesting ones are approaching three.
tern.sh/blog/volume-...
"If you don't plan on reading the code, what do you plan on reading?" My cofounder asked me this and I still haven't fully recovered.
tern.sh/blog/if-not-...
"Migrate all tests to RTL" → look at the inventory → half of them should be deleted, not migrated. The inventory is how you find out you framed the problem wrong.
tern.sh/blog/if-not-...
Your prompt has a goal, an approach, an inventory, and state jammed into one artifact. The first two are prompt-shaped. The last two are spreadsheets. That's why it's a mess.
tern.sh/blog/if-not-...
AI coding feels knife-edge, and it's not because the models are bad. It's because the only thing you can read is your own prompt — and your prompt is doing four jobs at once.
tern.sh/blog/if-not-...
Writing code is easier than editing code, for humans and for AI.
The leverage isn't in the generated code. It's in encoding your expertise into a system you can run at scale.
Full write-up: tern.sh/blog/ai-code...
The loop: run a batch → find the pattern in failures → fix the prompt → re-run and measure → repeat.
It feels like programming because it is. You're tightening a spec until the output is indistinguishable from code your team would write.
The counterintuitive part: you don't build trust by reviewing every file. You build it by finding your workflow's failure modes.
If step 2 fails on async tests, that's one bug in your instructions. Fix it, regenerate everything.
Step two: treat your prompt like a program, not a wish.
Migrations need stages: gather context, transform, validate, fix errors. One mega-prompt overloads the AI and makes failures impossible to debug.
Step one: turn the overwhelming problem into a spreadsheet. Find the call sites, tag complexity, note which files don't actually need changes.
You haven't started the migration. You've just gotten smarter about the problem.
This is the central problem of AI migrations: a bot can change 500 files overnight, but you're left with 50,000 lines of potential garbage to review.
Better models don't fix this. The fix is a workflow.
When a teammate opens a PR, the work is 90% done. You're reviewing for blind spots, gentle style nits.
When an AI opens a PR, the work is maybe 10% done. The code builds, but nobody trusts it. Review is where the real work starts.
AI doesn't just write better code with good abstractions, it writes dramatically better code.
Apollo's CEO on why concise, well-structured code is now a competitive advantage.
www.youtube.com/watch?v=Z0Ce...
Your hotel reservation system is from 1987 and it's never going away.
Apollo's CEO on why enterprise silos are a feature, not a bug—and what that means for building with AI.
www.youtube.com/watch?v=Z0Ce...
AI code generation only works if you know what you want it to build.
Apollo's CEO on why systems thinking is the new bottleneck, not coding speed.
www.youtube.com/watch?v=Z0Ce...
GraphQL isn't REST's competitor. It's SQL for your APIs.
Apollo's CEO explains why this matters more than you think.
www.youtube.com/watch?v=Z0Ce...
At Snap, tool adoption wasn't mandated. It was inevitable.
Ben Hollis built infrastructure with loose coupling + declarative config. Teams could work without coordinating.
Design for the org structure you have, not the one you wish you had.
www.youtube.com/watch?v=5zJ5...
Snap killed payments in 2016.
In 2018, they had to support it again. Why? Saved messages.
"How do you even get one of those? You have to go find one."
Every quick experiment becomes archaeology later.
www.youtube.com/watch?v=5zJ5...
Snap's CEO: redesign the app in 30 days.
They shipped on time. User growth went negative.
The problem: monolithic infrastructure couldn't support iteration. Big bang launch, no adjustments.
You can't throw people at system constraints.
www.youtube.com/watch?v=5zJ5...
Snap rewrote infrastructure while bleeding users.
Why? They weren't trying to drive growth—they were trying to ship features in days instead of quarters.
18 months later: 500M DAU.
Migrations enable growth, don't drive it.
www.youtube.com/watch?v=5zJ5...
"An API that can't be used by an agent is probably not that valuable."
Apollo CEO Matt DeBergalis on why the AI race is about surface area, not sophistication.
The companies winning aren't talking about it. Here's why: youtu.be/Z0Ceg4uEXmY
Real velocity isn’t “we shipped.”
It’s “we shipped and trust never flickered.”
How Sourcegraph added AND/OR/NOT while guarding the highest-risk path.
www.youtube.com/watch?v=kd4y...
Users saw “AND/OR/NOT.”
They didn’t see the scaffolding that made it safe.
Unglamorous engineering—parsers, ranking, caching, telemetry—so the UI stays calm.
www.youtube.com/watch?v=kd4y...
Confidence is a deliverable.
Reference impl → grammar-guided fuzzing → differential tests.
Same inputs through old+new; investigate every delta. High-risk change, low-drama release.
www.youtube.com/watch?v=kd4y...
New features get launch teams.
Who protects the core?
Treat “don’t break the core” as a deliverable: owners, golden tests, shadow compares, clear gates.
www.youtube.com/watch?v=kd4y...
Sourcegraph's parser handled millions of queries daily. Rijnard had to rewrite it without anyone noticing. His decision framework: "timeline and vibes."
0 bugs.
Full episode → youtu.be/kd4yYjc6LrE
Migrations aren’t hard because the code is hard.
They’re hard because teams only discover what to do once they’ve already started.
AI won’t do the migration for you. But it can help teams learn earlier, together. That moves the needle.
🎥 Full episode: www.youtube.com/watch?v=xzjm...