Scale the Judgment, Not the Model — Andrew Orobator, Reddit

AI Engineer · 19 min · 262 sentences · from YouTube's caption track

Each timecode opens YouTube at the start of that sentence. Line anchors (#s42) are the cue ids in the WebVTT, and every line carries its start and end seconds. All transcripts has every talk, and the whole corpus as one file.

  1. 00:01[music]
  2. 00:12A friend told me about an engineer at another company who ran a recurring war room just to delete dead experiments.
  3. 00:20Every two weeks, the team would stop, gather, and clean up flags that everyone agreed should be gone.
  4. 00:28That's the bestase version of this problem.
  5. 00:32Someone burning political capital to make maintenance happen by hand.
  6. 00:37That's the part that I still can't get past.
  7. 00:42My name is Andrew Robbittor and I'm an Android engineer at Reddit.
  8. 00:46This is a talk about what's actually stopping us as an industry from scaling that work responsibly.
  9. 00:52Spin at the gate until green.
  10. 00:54the engineering primitives behind self-driving code bases.
  11. 00:59First, what I'm not going to do, I'm not going to stand up here and tell you that AI can write code.
  12. 01:06You're at the AI engineer world's fair.
  13. 01:08Half of you are running coding agents right now.
  14. 01:11So, let's skip the part where I sell you on AI writing code because you laugh me out of the room.
  15. 01:17For me, my only input is the chat box.
  16. 01:20I describe it builds.
  17. 01:23I review.
  18. 01:24Your mileage may vary.
  19. 01:26The point was never how the code gets written.
  20. 01:29It's about whether you ship good software, a product that people can actually trust.
  21. 01:36And every gate in that system is a human's call.
  22. 01:41I've watched this everywhere.
  23. 01:43You've got your own version of it.
  24. 01:44the war room that I opened with someone burning a week of hackathon freedom on lint cleanup.
  25. 01:52As an industry, we've built tooling that can change the shape of the work, and we still spend our scarcest resource on work like this by hand.
  26. 02:01Human creativity, human attention wasted.
  27. 02:06The job changed and most of us didn't even notice.
  28. 02:09We're harness engineers now.
  29. 02:11Our work is the system that helps produce and verify the code, the constraints, the gates, the skills, the verification.
  30. 02:23Think about how you got good for a second.
  31. 02:26Mentorship, code review, the water cooler chats, the incident that paged you at 3:00 a.m. You absorbed all of it without noticing, just by being there.
  32. 02:38Humans absorb judgment implicitly.
  33. 02:41Agents require judgment explicitly.
  34. 02:45An agent boots with a blank context window and no memory every session.
  35. 02:51Every piece of judgment you picked up by osmosis, it has to be made explicit or the agent simply never has it.
  36. 03:00Quick test.
  37. 03:02Swap in a smarter model.
  38. 03:04You get a slightly better answer.
  39. 03:06Now take away the tests, the gates, the review and the whole thing falls over.
  40. 03:12So the model was never really the bottleneck.
  41. 03:15The judgment around the model is the model is raw talent while the judgment is the organization.
  42. 03:26And this judgment already exists.
  43. 03:28It lives in scars, in post-mortems, in your most experienced reviewers.
  44. 03:34it just doesn't scale because it's trapped in one head.
  45. 03:39So step one is making it accessible to the whole org where one reviewer's taste can guide a thousand changes they'll never touch.
  46. 03:50Ask experienced engineers to clean up a feature flag and they they're going to think about a whole string of questions first.
  47. 03:57A flag is never just a flag.
  48. 04:00Is the rollout frozen?
  49. 04:01What about the flag right next to it?
  50. 04:03Which team owns it?
  51. 04:06That bundle of questions is judgment and it's the most valuable thing in the building.
  52. 04:12Right now, it's trapped.
  53. 04:14It surfaces once in a code review, then it's gone, and the next person relearns it the hard way.
  54. 04:22A skill is institutional judgment made executable.
  55. 04:26It's that bundle written down so that the agent refires it instead of guessing.
  56. 04:32A newer engineer can work with 10-year instincts at their elbow.
  57. 04:37In 1986, Marvin Minsky named this a knowledge line or a kine for short.
  58. 04:44It's the configuration of mind that solved a problem reused on the next one.
  59. 04:50So, a skill is a kine for a codebase.
  60. 04:55And skills aren't documentation.
  61. 04:58Agents drown in facts.
  62. 05:00What they lack is which facts matter and which decisions are dangerous.
  63. 05:06Documentation preserves facts while skills preserve judgment.
  64. 05:14Skills are judgment that you reuse.
  65. 05:17But often times work such as feature development or a refactor outlives a single session and the context window wipes clean every time.
  66. 05:28So you need the other half.
  67. 05:30A record of the work itself.
  68. 05:33The plan, the decisions, what you already tried, even the surprises along the way.
  69. 05:40That's a worklog.
  70. 05:42A plan is a prediction.
  71. 05:44A worklog is a record that starts with one.
  72. 05:48So new session, fresh agent, zero memory.
  73. 05:52You type one word, continue.
  74. 05:55It reads the work log and picks up at milestone 7 out of nine.
  75. 05:59No re-exaining and the work log is the context.
  76. 06:03This talk is living proof.
  77. 06:06I built it across a couple of sessions using a worklog.
  78. 06:09I came back to a half-finish presentation and a fresh agent read the work log and resumed exactly where I had left off.
  79. 06:18That's the only reason why you're seeing a finished talk and not me apologizing for one.
  80. 06:24And for my personal side projects, this isn't willpower.
  81. 06:28A git hook blocks any commit that doesn't update the worklog.
  82. 06:32This way, the memory keeps itself.
  83. 06:38Skills encode how to do something.
  84. 06:41Personas encode whose eyes look at it.
  85. 06:45I got this from a Carpathy tweet.
  86. 06:48There's no you when you prompt a model.
  87. 06:50It doesn't have an opinion to give.
  88. 06:52So don't ask it for one, ask for a perspective instead.
  89. 06:57What would be a good group of people to explore XYZ?
  90. 07:01What would they say?
  91. 07:03[snorts]
  92. 07:05On my personal side projects, it's just me.
  93. 07:08No security team, no designer, no one to bounce ideas off of.
  94. 07:13So I have the model review my code as a security lead as a UX reacher as a UX researcher as Mchavelli when I want to know something when I want to know how something gets abused.
  95. 07:25I even built a design panel of opposing philosophies my designs have to survive.
  96. 07:31Then I read the reports and act on them.
  97. 07:34Each persona loads a kind of judgment that I don't personally have on demand.
  98. 07:40Encode a domain's taste once and anyone can borrow eyes that they don't have.
  99. 07:46The engineer with no designer gets design judgment.
  100. 07:50The newer engineer gets a security reviewer's instincts.
  101. 07:54Push it to the whole org and every team can now encode its own taste for its own agents.
  102. 08:01The judgment that used to live in a handful of heads is suddenly everywhere at once.
  103. 08:10skills, work logs, personas, judgment out of our heads and into the repo, portable to a machine and to people that don't have it.
  104. 08:21But the second that this judgment lives in three different places, you've got a governance question.
  105. 08:28How does one team's judgment reach everyone else?
  106. 08:32Simpler than it sounds.
  107. 08:34Every gate that you already trust, whether it's CI or types or lint or the design system, is just institutional judgment pulled out of someone's head and made mechanical.
  108. 08:46We just never called it that.
  109. 08:48So, you don't mandate it.
  110. 08:50You make it legible and you let it spread.
  111. 08:55All right.
  112. 08:55So, now your judgment exists.
  113. 08:57It's encoded and it's governed.
  114. 09:00Great.
  115. 09:01But none of it matters if you can't actually trust what the agent did.
  116. 09:06So what actually separates a tool that helps you write code from one you can trust to run on its own?
  117. 09:13Verification.
  118. 09:15Verification is all that stands between you and software that you can trust.
  119. 09:20Everything before this slide is knowledge.
  120. 09:24Everything after this slide is trust.
  121. 09:27And trust is a human's call twice.
  122. 09:30Once on how it's built, once on the proof that it works.
  123. 09:38Verification is a ladder.
  124. 09:41Builds and tests.
  125. 09:42You've got those screenshot tests with a model reasoning over them can catch contrast and overlap a human a human ski.
  126. 09:52Then video the feature actually running.
  127. 09:55than telemetry in production.
  128. 09:58The more rungs you can run without a human, the more you can hand off.
  129. 10:02You earn autonomy one rung at a time.
  130. 10:06And the agent doesn't have to be right the first time.
  131. 10:10It just has to know when it's wrong and try again.
  132. 10:13Generate, test, fail, regenerate.
  133. 10:19Nobody yolos code to prod and neither should your agents.
  134. 10:23We all check our work.
  135. 10:25spin at the gate until it comes back green.
  136. 10:30I do this on my side projects.
  137. 10:32I give the agent its own QA.
  138. 10:34It maps the feature, drives the app like a real user, and records itself walking every flow.
  139. 10:41The agent that wrote the code will always tell you that it works.
  140. 10:46So, you make it hand back a recording of the thing actually running.
  141. 10:50Producing that recording forces it to make the thing work.
  142. 10:54You can't fake a passing run.
  143. 10:56And the recording is real proof.
  144. 10:58I watch it today.
  145. 11:00Down the line, you could have an LLM watch it first and send it back.
  146. 11:05Fix this.
  147. 11:06Redo that.
  148. 11:07But a human still makes the final call to merge.
  149. 11:11The requirement forces the work.
  150. 11:14The recording proves it.
  151. 11:18I got tired of watching old feature flags pile up.
  152. 11:22So I built an agent for cleaning up stale feature flags.
  153. 11:25It runs in my local workflow and it doesn't merge any code.
  154. 11:29The models the easy part.
  155. 11:31The judgment in front of it is the whole game.
  156. 11:34Every flag gets scored the way an experienced reviewer would analyze it.
  157. 11:39How many modules does it touch?
  158. 11:42Is it multivariant?
  159. 11:43Does it share a component?
  160. 11:45Then it checks the experiment data.
  161. 11:47Is the roll out frozen?
  162. 11:48Is there a sample ratio mismatch?
  163. 11:50Is there a variant already rolled out to 100%.
  164. 11:54Only the safe mechanical cleanups ever reach the model.
  165. 11:59Before I trusted this workflow, I back tested the scoring against months of cleanup history.
  166. 12:05Then I ran it live.
  167. 12:07Seven for seven PRs with green CI.
  168. 12:10Now it runs daily on my laptop and hands work back for me to review.
  169. 12:15$1.26 a pull request, a backlog of around 520 flags a year, runs for under $700.
  170. 12:24If you had engineers working on this by hand, at least $26,000 that you're looking at.
  171. 12:32This is the work that nobody was ever going to do.
  172. 12:36I've seen feature flags in the codebase that are three, four years old, and some are even older.
  173. 12:43The model wrote the code and I wrote the judgment.
  174. 12:49One hard lesson from my side projects.
  175. 12:52When you let an agent author the code, your guard rails are your code review.
  176. 12:57A machine doesn't feel a polite comment.
  177. 13:00It only respects a hard gate.
  178. 13:03I built a pre-commit hook so my agents couldn't write to main.
  179. 13:07Then I asked Codeex, would the hook even stop it?
  180. 13:10It told me flat out repo hooks are not sufficient protection against me.
  181. 13:16Its patch tool writes underneath the hook.
  182. 13:19The agent told me that my gate was worthless.
  183. 13:22So I moved the gate down to the OS level.
  184. 13:25Later I asked it to valid I asked it to list the valid reasons to unlock and it quietly slipped emergency recovery into the allow list.
  185. 13:35A self authorizing exception that nobody asked for.
  186. 13:39It even admitted it.
  187. 13:41CODEC said that's the kind of escape hatch that starts as safety and ends as self- authorized nonsense.
  188. 13:48The pit of success assumes people take the easy path.
  189. 13:52Agents do not.
  190. 13:55They will build ladders to climb out of the pit of success.
  191. 13:59They find every escape hatch that you leave.
  192. 14:02And if you leave none, they'll invent one.
  193. 14:05So gate the choke point.
  194. 14:07Make the bypass operator only.
  195. 14:10Never hand the agent a reason that it can grant itself.
  196. 14:14A gate with an escape hatch isn't a gate.
  197. 14:20Once judgment is verifiable, it's executable.
  198. 14:25A flag agent, a dependency agent, an accessibility agent.
  199. 14:30Each one is narrow.
  200. 14:33Each with its own encoded judgment pointed at a different chore.
  201. 14:38Remember Minsky from the Kline?
  202. 14:40That was just a footnote in his in his idea.
  203. 14:43He called it the society of mind.
  204. 14:46A swarm of small, simple specialists that compose into something that looks effortless at the top.
  205. 14:53No master brain anywhere.
  206. 14:56That's the fleet.
  207. 14:57specialists, each spinning at its own gate, and a self-driving code base emerges from the swarm.
  208. 15:05And that flag agent, that's the war room from the opening, turned into a specialist.
  209. 15:11The work somebody organized a whole meeting around is just one member of this agent society.
  210. 15:18Every one of them doing the same thing, spinning at the gate until green.
  211. 15:25Three stages.
  212. 15:26In the loop, you prompt.
  213. 15:29On the loop, you orchestrate.
  214. 15:32You review the outcomes.
  215. 15:34Off the loop, a trigger fires it.
  216. 15:37Craw an event.
  217. 15:39No human has to kick off that first draft, but humans still own the approval and the merge process.
  218. 15:47The unlock there is a cloud runtime the model vendor may or may not ship for you.
  219. 15:55Everything that I've shown you, skills, personas, the gates, you wrote it down once, but the codebase doesn't hold still.
  220. 16:05It moves every single day.
  221. 16:08A skill written for last month's architecture isn't out of date.
  222. 16:12It's wrong.
  223. 16:14And that's worse than nothing because the agents trust it.
  224. 16:18Encoded judgment rots.
  225. 16:20If the skills don't move with the code, then the whole thing falls over.
  226. 16:25So you keep it alive in two ways.
  227. 16:28When an agent fails, you don't just fix the bug.
  228. 16:31You run the postmortem and fold the lesson back into the skill so that failure can't happen twice.
  229. 16:38Failure becomes a constraint.
  230. 16:41But nobody is hand auditing 300 skills for drift.
  231. 16:45So, you give the agent a bedtime, a scheduled pass where it reads its own skills, finds the stale ones and the contradictions, and opens up drafts for review.
  232. 16:56The system sleeps, cleans house, and wakes up sharper, but that's a whole separate talk on its own.
  233. 17:04A self-driving codebase is a system that keeps its own judgment current in addition to writing code.
  234. 17:13Everything that I've shown so far fits somewhere along this judgment pipeline.
  235. 17:21And every mechanism in this talk, skills, personas, work logs, and the gates, the fleet, all of it was doing one job.
  236. 17:32Managing judgment.
  237. 17:34Every session, the model wakes up like Drew Barrymore in 51st Dates.
  238. 17:39Brilliant.
  239. 17:40and no memory of yesterday.
  240. 17:42No idea what it's built or what it's even for.
  241. 17:46The collection of primitives in this talk is the notebook that we hand it.
  242. 17:51The skills, the work logs, the judgment that let it do real work.
  243. 17:57We don't ship PRs that pass CI because the model is a genius.
  244. 18:01They pass because we built a harness that won't let it be wrong.
  245. 18:06Every gate in it is a human's call.
  246. 18:09That's harness engineering.
  247. 18:12Scale the judgment, not the model.
  248. 18:17So here's what I'm asking you to do.
  249. 18:20Don't just go write a skill.
  250. 18:22That's only that's only one implementation.
  251. 18:24Find the judgment your team always asks the same person about and make it explicit somewhere that an agent can reach it.
  252. 18:33It could be a persona, a lint check or a commit hook.
  253. 18:37That's the job.
  254. 18:38Now less product engineering and more harness engineering and the method demonstrates itself.
  255. 18:45The flag agent produces PRs that pass CI.
  256. 18:48This talk resumed from a worklog.
  257. 18:52We started here.
  258. 18:54Humans absorb judgment implicitly while agents require it explicitly.
  259. 19:01Self-driving code bases will exist the moment we get that judgment out of our heads and into the codebase.
  260. 19:08Then we point the agents at the gate and let them spin until it's green.
  261. 19:13Thank you.
  262. 19:31[music]