Addy Osmani says anything with an answer key gets automated, so build your career on the ungradeable parts: judgment, taste, accountability. He is right about the diagnosis. But he treats “ungradeable” as safe ground you retreat to. It isn’t. Answer keys are written by people, and the best career move is to be one of the people writing them.
Date: July 2026 | Riffs on: Addy Osmani, The Ungradeable Career
His Argument
School was answer keys all the way down. Every problem you were given had a known solution, and someone else graded you against it. Addy’s observation is that this describes most of engineering work too, and if a problem has an answer key, an agent will eventually solve it better and faster than you. Anything gradeable by someone else is getting automated, so the last decade’s prize skill, being the fastest solver, is depreciating on a schedule.
His advice follows from that: define problems instead of just solving them, cultivate taste, shift from doing to directing, sprint the last mile that agents can’t finish, and own what you ship. Focus on the ungradeable part of the career.
I agree with almost all of it. It is the same conclusion as The Coder is Obsolete: the typing seat is gone, the judgment seat stays human. And “define the problem” is why English became the most important language for software engineers.
My Problem With It
The essay treats “has an answer key” as a fact about the problem. It isn’t. It is a fact about your tooling, and tooling is built by someone.
School’s answer keys didn’t fall from the sky. A teacher wrote them. In engineering, the answer keys are things we write every day: unit tests, evals, CI gates, lint rules, type signatures. Each one takes a task that used to need human judgment and turns it into something a machine can check.
So the line between “gradeable” and “ungradeable” is not fixed. It moves every time an engineer writes a new check. That gives you two ways to respond:
- Retreat. Keep moving toward whatever agents can’t grade yet, and hope the line stops advancing. It won’t, and your ground shrinks every quarter.
- Author. Be one of the people writing the checks. Hand each newly checkable task to agents, and move your own attention up a level.
The second posture is strictly better, because every check you write keeps working after you stop paying attention to it. It is a free employee that grades forever.
Taste You Don’t Write Down Is Wasted
Addy’s advice on taste is to earn it through reps and keep your alpha ahead of the models. The reps part is right, and I’ve made the same argument in The Struggle Is the Product. But there is a step after the rep that his essay skips.
When your taste fires on agent output (“this error handling is wrong”, “this coupling will bite us”, “this test asserts nothing”), you have a choice. You can fix the code and move on, which means you will make the same catch again next month. Or you can ask: can this objection be turned into a check?
Most of the time it can. A lint rule. A type that makes the bad state impossible. An eval case. A property test. That is the whole idea behind ESLint Rules Are Programs, learning loops, and Skills Need Evals, Not Vibes.
Taste kept in your head scales to one person, eight hours a day, and leaves when you do. Taste written into a check runs on every commit, forever. The way to keep your alpha ahead of the models is not to hoard what you know. It is to cash in yesterday’s taste as today’s checks, then go back to the frontier and earn more.
Directing and the Last Mile Are the Same Skill
Two of Addy’s five directives are secretly one directive.
“Shift from doing to directing” means scope the task, define done, verify the result. But defining done and verifying the result is writing an answer key. As I argued in The Five Levels Are Gated by Verification, you don’t get to delegate more because you got more senior. You get to delegate more because you built more checks, so the environment can tell the agent it’s wrong without you in the room.
“Sprint the last mile” has the same root. The last 20-30% is yours today because no check covers it yet, so only a human can say whether it’s done. But that region shrinks with every check you write. The engineers who finish the last mile fastest are the ones who spent the calm weeks making it shorter. That is the mechanism behind The 30% Cliff and the verification ladder.
What Actually Stays Yours
Encoding everything still leaves a core that no check can hold, and it is worth naming precisely, because it is smaller than “judgment”:
- Choosing the problem. Which thing is worth pointing the machinery at. This is the part of the job with no scoring function, the same line I drew in Autonomous Loops Need a Scoring Function.
- Auditing the checks. Every answer key is a proxy for what you actually want, and agents will happily optimize against a broken proxy forever. Someone has to notice the day that “passes the checks” stopped meaning “the work is good.”
- Answering for it. Accountability can’t be encoded because it isn’t information. It’s a stake. “The AI did it” fails as a defense for the same reason “the compiler did it” always has. Your name is on the change.
That triad is the genuinely ungradeable career. Everything else is territory waiting for a check.
What To Do On Monday
Try this for one week. Log every judgment call you make on agent output: every rejection, every “this smells wrong”, every manual look before merge.
At the end of the week, sort the log into two piles:
- Objections you could have written down as a check. Encode them, one by one.
- Objections you couldn’t. This pile is your actual job description, and it will be shorter than you expect.
Then watch the ratio over time. If you keep making the same calls by hand month after month and encode none of them, you are farming reps without banking them. That is the one position this essay should scare you out of.
One Sentence
Don’t retreat above the gradeable line and hope it stops rising. Write the answer keys yourself, hand the graded work to agents, and keep only what no check can hold.
Related
- The Coder is Obsolete. The Programmer is Not. – The role that survives is the one that specifies and verifies
- Skills Need Evals, Not Vibes – Encoding taste into graders for agent skills
- ESLint Rules Are Programs – Lint rules as permanent, executable taste
- The Five Levels Are Gated by Verification – Autonomy is downstream of grading
- Learning Loops – Turning each judgment call into a constraint
- The 30% Cliff – Why the last mile is the ungraded part
- Autonomous Loops Need a Scoring Function – The part of the job with no scoring function
- The Struggle Is the Product – Where the reps that build taste actually come from

