來源:YouTube | 00:25:31 | 2026-08-08
「氛圍編碼」是隨機賭博,「氛圍工程」則是將開發者的技術判斷與經驗制度化為代理規則,通過系統性不信任與零錯誤循環,在 AI 世代重新掌握軟體品質的控制權。
- 開場對比:AR、物理模擬、生成式藝術等領域飛速突破,前端開發卻十年無法統一 select 樣式與計數器寫法。
- 定義之爭:從 Karpathy 的「氛圍編碼」到「氛圍工程」——後者是以多疑的姿態編排 AI 代理,而非盲目接受 diff。
- LLM 的雙面性:模型能加速抽象化,但同時也會更快抵達錯誤抽象;它們不厭倦重複程式碼,這反而是優勢。
- 實戰技巧:使用語音輸入撰寫長時間 prompt、以 Git worktree 隔離、依靠型別檢查與自訂 linter(「警察規則」)確保每次回合以零錯誤結束。
- 人才與職涯:初中階開發者容易產出混亂,資深開發者若放下偏見則能變成超級開發者;單純「被動接收任務」的角色將被淘汰。
- 技能重塑:「程式碼夠好就好」是一種極難掌握的新能力,電腦科學教育反而迎來最佳時機,因為 AI 能隨時陪伴除錯與繪製圖表。
-
從「寫碼者」到「AI 稽核員」的角色位移:Kitze 反諷地指出,我們從全端搖滾明星變成 Q&A 測試員。這並非貶低,而是點出了軟體開發的實質轉向:創造力釋放到系統設計與品質閘門上。歷史上看,從組合語言到高階語言,再到框架,每次抽象化都讓開發者遠離實作細節,但這次是第一次將「實作決策」外包。問題在於,資深開發者的價值過去建立在「知道如何寫」之上,現在必須轉移到「知道何時該拒絕 AI 的寫法」,這是一種從建構者到策展者的痛苦轉變。
-
「零錯誤結束迴圈」與軟體熵的對抗:Kitze 提出的「turn ending with zero」不只是 CI/CD 的技術實踐,更是對抗軟體熵(software entropy)的核心武器。他觀察到,讓 AI 在一個回合內持續迴圈直到零型別錯誤和零 lint 錯誤,能防止「錯誤架構的累積」。這背後的心理學是:人類開發者有「明天再整理」的拖延傾向,但 AI 代理沒有;若不在每個回合立即清零,爛程式碼會像複利一樣滾雪球,最終系統性地污染整個程式庫的架構。
-
「警察規則」的隱喻:將程式碼品味形式化:Kitze 自建政策腳本(police rules)的概念極具洞見。傳統 linting 只能捕捉語法與風格問題,但他擴展到「不允許代理手寫 CSS」這類架構級禁令。這揭示了高階氛圍工程的精髓:開發者不再直接撰寫邏輯,而是將自身經驗濃縮為可執行的規則集。這類似於法律體系中,立法者不必親自執法,但法律條文的品質決定了社會運作的好壞。問題在於,多數開發者尚未意識到需要將「隱性知識」外化為顯性規則。
-
語音輸入作為對抗「提示詞懶惰」的槓桿:Kitze 觀察到一個關鍵現象:打字輸入 prompt 時,人類傾向懶惰、只寫一句話;但使用語音輸入時,會自然地對 AI 像同事般持續對話,產出長達七到九分鐘的詳細指令。這涉及認知負荷理論:打字是高認知負荷的轉譯過程(思維→文字→鍵盤),而語音直接從思維流中擷取,保留了更多上下文脈絡。這也解釋了為何長 prompt 效果較好:不是模型需要長文字,而是人類在長對話中才會完整表達內心已存在的隱性需求。
-
「氛圍編碼修復師」產業的黑色幽默與警訊:演講中提到,Reddit 上出現付費請人類完成 AI 產出最後 20% 的現象。這不是笑話,而是真實的市場失靈。從軟體工程經濟學來看,這反映了「帕雷托邊界位移」:AI 將 80% 的粗活成本降為零,但剩餘 20% 的整合、邊界條件、安全考量反而因 AI 程式碼的不可預測性而成本飆升。若企業將此角色常態化,可能創造出一種低士氣的「數位清潔工」階級,專門收拾 AI 的殘局。
| 概念 | 說明 |
|---|---|
| Vibe Coding | Karpathy 提出的原始定義:不完全閱讀 diff,直接接受 LLM 的所有建議,像賭博般按「生成」期待奇蹟。 |
| Vibe Engineering | Kitze 的中間路線:使用代理處理一切,但始終抱持懷疑(雙手交叉姿勢),將自身技術知識轉化為規則與 prompt,編排而非盲從。 |
| 零錯誤結束迴圈 | 每次代理回合結束後,hook 觸發型別檢查與 linting;若有錯誤,代理必須迴圈修正,直到完全清零才結束回合,防止架構偏差累積。 |
| 警察規則(Police Rules) | Kitze 自建的客製化 linter 規則,超越 ESLint 範疇,可禁止特定實作方式(如手寫 CSS),將開發者的架構偏好強制落實於代理產出中。 |
| MCP | 諷刺對象:受眾多 buzzword 困擾,MCP(Model Context Protocol)本質上就是一個 API,被過度包裝。 |
| PAIN Developer | 對「挑剔難搞開發者」的診斷:在兩行 PR 留 nitpick、永遠不說「looks good to me」、為兩個用戶的 5G iPhone 做過度效能優化。 |
| COBOL Cowboys | 真實存在的顧問公司,標語「Not our first rodeo」,專門維護老舊 COBOL 系統,象徵資深開發者在維護遺留系統上的高薪不可取代性。 |
Kitze 的演講表面上是一場充滿笑料的技術喜劇,內裡卻隱含軟體產業即將面對的結構斷層。第一個啟示是「中階開發者的困境」:他精準指出,初階者狂熱擁抱 AI,頂尖框架作者也樂於使用,唯有中間層——那些剛剛精通某個技術棧、以此為身份認同的開發者——最抗拒也最脆弱。這群人過去靠「我可以手寫比 AI 更好的程式碼」來建立自信心,但當 AI 的產出品質越過可接受的門檻時,這層心理防線會崩潰。企業若不明就裡地將 AI 工具優先交給初階者使用,將會產出大量技術債。
第二個啟示是從「寫程式」到「寫規則」的供應鏈轉移。就如同製造業從手工生產轉向自動化產線,關鍵不再是誰能在產線上組裝得最快,而是誰能設計出不會產出瑕疵品的模具。Kitze 的「警察規則」正是軟體世界的模具設計。這意味著未來的 IDE、框架、甚至是語言本身,可能會原生支援這類可程式的架構約束層,而不僅是語法層面的 linting。
- "LLMs don't care about repetitive code. A lot of times even in 2026, it's fine you have scattered copy-pasted code lying around without actually abstracting it." —— LLM 不在意重複程式碼。即便到了 2026 年,很多時候讓複製貼上的程式碼散落各處而不抽象化,是完全沒問題的。
- "This is a completely new skill that we're all developing... knowing when a code is good enough for the job that it's supposed to do. This is such a hard thing to do." —— 這是我們正在共同發展的全新技能……知道一段程式碼是否「夠好」以完成它該做的事,這極其困難。
- "The highest paid developers were never vibe coders on the next shiny AI startup. The highest paid developers are seniors maintaining legacy systems. This has always been true." —— 收入最高的開發者從來不是那些在光鮮 AI 新創中做氛圍編碼的人。最高薪的一直是那些維護遺留系統的資深開發者。這個道理從未改變。
點擊展開完整字幕
0:00 Kitsie comes to us from a little bit 0:01 outside of the Laravel community and I 0:03 think this is indicative of where the 0:05 future is going is that all of these 0:07 communities are coming together. So 0:08 we're incredibly honored to have Kitsie 0:11 here today. If you don't know him, he's 0:13 the founder of Sizzy which is a browser 0:14 built for web developers. He's done Zero 0:17 to Shift which is a course. He's done 0:19 He's done dozens of things. Um and these 0:22 days he is really all in on AI but not 0:26 from a vibe coding perspective but from 0:29 uh engineering perspective. So please 0:31 welcome to the stage Kitsie. 0:34 >> So hi. 0:35 I'm Kitsie A. 0:36 I get it. Everyone pronounces it Kitsie. 0:38 It's totally fine. 0:40 I'm a PHP developer. 0:42 I was a PHP developer. 0:44 15 years ago WordPress counts, right? 0:48 So I deployed one Laravel app in my 0:49 life. So I think I'm not a larper. So 0:53 we're going to talk about going from 0:54 vibe coding to vibe engineering 0:56 and how these last 3 years induced like 0:58 AI psychosis and what can we do about 1:01 that. 1:02 But first, I've been doing conference 1:03 talks for 10 years at this point and a 1:06 lot has happened in every industry and 1:09 before we talk about what happened in 1:10 the web development industry, not just 1:12 in PHP, React, and whatever, let's just 1:14 summarize what other people are doing in 1:16 other things. Like in AR, in the Vision 1:19 Pro, you can do this cloth physics 1:21 thingy and you can drop it on a thing 1:22 and it will collide with the real world. 1:24 It's insane. 1:26 Whatever this is, you can just slide 1:27 some meshes and it's just beautifully 1:29 splitting into we have these magical 1:31 waterfalls. This is one of my favorite 1:33 demos. They take like two rocks and 1:35 somehow they magically smoosh together 1:36 and it looks nice. I have no idea how 1:38 that works. You can drag your mouse here 1:41 and just by dragging the pointer you get 1:43 like generative city and traffic and 1:46 lanes. Like this is just pure magic. 1:49 This is very pleasant to look at. It's 1:50 like some honey goo falling on a cube. 1:52 You're like, "Ooh, that's really really 1:53 nice." Now, I can go on and on and on 1:55 and on, right? But let's just summarize 1:56 what has happened in front-end 1:57 development in the last 1:59 um 10 years. Um 2:01 you have respect for your profession. 2:03 Your LinkedIn title is like the CEO 2:06 architect of dreams, professional 2:08 crafter of blah blah blah. So, you're 2:10 going to try so hard not to laugh, 2:12 right? Because you want to respect your 2:13 profession. You're you know, you're a 2:15 craftsman. So, give me a little drum 2:16 roll just by, you know, on your knees 2:18 like this. What happened? After 10 2:20 years, this is a live article. 2:24 You can go right now on the web, and it 2:26 says, "Sorry, the styling of select will 2:28 come one day, maybe on some browsers, 2:31 sometimes." It's incredible. CLIs, you 2:33 would think that we'd be done with CLIs 2:35 by now, right? 2:36 >> [snorts] 2:36 >> Not that they're not dead, they're 2:37 actually thriving. I have a calendar 2:40 event every year. I check like, "Are 2:41 they dead as a concept?" They're more 2:43 alive than ever. The first time I 2:44 dropped an image into Cloud Code, I'm 2:46 like, "How the [ __ ] How do images It 2:49 just appeared there." It just blew my 2:50 mind. 2:52 You can do a popover without JavaScript. 2:55 So, I need an applause. Like, we can do 2:57 a 2:58 Stop [ __ ] clapping because people 3:00 have brain implants, and they can 3:03 communicate without, you know, any 3:04 typing and stuff. We still cannot get 3:06 rid of Internet Explorer. We just 3:08 updated the logo a little bit, but we're 3:09 just dealing with the same [ __ ] 3:12 And we still cannot I don't know about 3:14 you, PHP Laravel people, but in the 3:16 JavaScript world, we cannot agree on a 3:18 way to increase a counter. So, this is 3:20 Ryan Florence's demo of Remix version 3:22 three, version two, the remix of the 3:23 remix, whatever's happening here. And we 3:25 still don't know how to increase a 3:26 counter. It's incredible. So, let's talk 3:28 about LLMs. They're very, very good at 3:30 writing code. This is an example from my 3:32 React universe, right? And you look at 3:34 this, and you immediately laugh. Like, 3:35 it's a human reaction to look at this, 3:37 and you'll go, "Oh, I can do better," 3:38 right? Because this is a brain, this is 3:41 very scientific scan, on cocaine. This 3:43 is a brain on sugar. And this is a 3:44 developer's brain when you realize you 3:46 can abstract something. Right? And 3:49 you're like, "Oh, I can and fix that 3:50 code. I can abstract that code." And 3:52 LLMs actually make this way better and 3:54 make it way worse because you can get to 3:57 the right abstractions faster, but you 3:58 can also get to the wrong abstraction 4:00 quicker. So, you basically are just 4:02 doing abstractions left and right, but 4:03 none all of them should be abstractions. 4:06 So, 4:07 but better is that LLMs don't care about 4:09 repetitive code. That snippet that I 4:10 showed you, it's only a human thing to 4:12 care about all that's repetitive. I need 4:14 to abstract it. And I'm going to repeat 4:15 this point and repeat this point and 4:17 repeat this point because LLMs do not 4:19 care about repetitive code, which is 4:21 good. A lot of times even in 2026, it's 4:24 fine you have scattered copy-pasted code 4:26 lying around without actually 4:28 abstracting it. So, let's check the 4:30 temperature of the room about vibe 4:31 coding. I'm very interested. Who thinks, 4:33 raise your hand if you think that vibe 4:35 coding rocks? 4:37 Ooh, it's going to be a fun talk. I like 4:39 it. Who thinks that vibe coding sucks? 4:41 Raise your hand. All right. Woo, let's 4:43 go. And who doesn't know what vibe 4:45 coding is? If you landed today, it's 4:47 your first day on Earth, 4:48 we welcome you. If you don't know what 4:50 it is, I'm going to explain it to you. 4:51 The thing is, all of you are right 4:53 because we actually vibe the definition 4:55 of what is vibe coding. It's like a very 4:57 generic definition. The original term 4:59 was created by Andrej Karpathy. He was 5:01 the ex-director of AI at Tesla, founding 5:03 member of Was he or AI just wrote that 5:06 there? I don't know. But he's the reason 5:07 that idiots film TikToks in the back of 5:09 their Tesla. Like it's You can just 5:10 blame him that they're sleeping in the 5:12 back of their car. This is the tweet 5:13 that he said originally. It feels like 5:16 ages ago, but it's actually from last 5:17 year. This word didn't exist. That he 5:19 doesn't always read the diffs and he 5:21 just accepts whatever the LLM suggests 5:23 he should do. That was the the 5:26 the definition. So, another interesting 5:28 thing about me is I'm a time traveler. 5:30 This is a talk from 2017. The slide is 5:32 from another conference. So, in 2017, in 5:35 one of my front-end talks, I said that 5:37 front-end development is so repetitive 5:39 and we're all working on the same [ __ ] 5:41 that eventually one day we'll be able to 5:43 use our voice and just be like, "Uh, 5:45 give me a suggestion for like 30 headers 5:47 and I want to pick the best one or just 5:49 change the landing page in this style or 5:50 in that style. 5:52 Granted, I said Alexa because I didn't 5:53 know what we're going to use, but I 5:54 could predict where all of this uh is 5:57 going. Also, managers have been actually 5:59 very early on all of this because 6:00 they've been vibe coding through you in 6:02 a way. So, let's see the cycle of a vibe 6:04 of a manager. They tell a developer to 6:06 implement a new feature, vibe coding. 6:08 The developer makes changes to the code. 6:10 The manager tests the app, does not read 6:12 the code, right? They're vibe coding. 6:14 The manager complains about the bugs. 6:16 Then the developer fixes, manager 6:18 doesn't read again. The developer says 6:19 done, please try now. And the manager 6:21 might say, depending if you're from the 6:24 Balkan area like me, like they might be 6:25 nice, they might curse at you, you know, 6:28 this cycle has been going on forever. 6:31 And then we repeat. There's so many 6:32 jokes. I can do this all day, just jokes 6:34 about vibe coding being bad, right? But 6:36 I'll give you one of my favorite ones. 6:37 Comparing a casino to vibe coding. So, 6:39 you buy chips, you buy tokens, you spin 6:42 the slots, you press generate. You might 6:44 hit the jackpot or nothing. You might 6:45 get a functional app or garbage that 6:47 won't run. Flashing lights, seductive 6:49 animations. You're absolutely right. 6:50 Great idea. You're a genius. 6:52 I've got my own strategy. I'm a prompt 6:55 engineer, all right? One more spin, I'll 6:57 win it all back. One more prompt, the 6:59 bug will disappear. The casino is 7:00 profit, the labs are in profit. Easy 7:02 money, I hit the jackpot. I build a SaaS 7:04 in one day. And then where did the four 7:06 hours go? I could have done this 7:07 manually by just manually writing code. 7:10 So, Karpathy tried to coin another term 7:11 like half coding, but you get to coin 7:13 only one term for a lifetime. So, he 7:15 tried to overdo it. No one No one is 7:16 calling it half coding. We actually care 7:18 about the code a little bit. So, 7:20 personally me, I'm not half coding and 7:22 I'm not vibe coding. I found something 7:24 in between that's basically, I think as 7:26 a community we agreed to call it vibe 7:27 engineering. And vibe engineering is 7:29 basically using agents for everything, 7:31 but you're kind of sitting like this, 7:32 crossed arms, like suspicious of like, 7:34 what the [ __ ] They're going to [ __ ] up. 7:36 That's like vibe engineering. So, it's 7:38 learning the completely new skill of 7:40 orchestrating and managing agents and 7:41 extracting your technical knowledge from 7:43 wherever you learn from your head to 7:45 actually give it into format of skills, 7:47 prompts, whatever it is to actually 7:49 code. But you got to always be 7:50 suspicious of LM code. You cannot ever 7:52 let them slip for a second. Why? Because 7:54 we trained them on our code. Remember 7:57 our beautiful handcrafted code that we 7:58 wrote, remember? Okay, not yours, but 8:00 some of your colleagues code, right? 8:02 Remember that [ __ ] You're like, "Yo, 8:03 what the [ __ ] is that?" They're 8:04 emotional because of us, they learn 8:06 because of us. This is Gemini having a 8:07 breakdown. I'm done. I'm broken. I'm not 8:10 a good assistant. I'm a failure. I'm 8:11 useless. I'm a disgrace. 8:13 This is you on a Friday, right? 8:16 They're lying because of us. Like this 8:17 is Quinn. 8:18 When someone asked it, "Why do you lie?" 8:20 It said, "Well, I found it on a human 8:22 forum. Like you guys are doubling down 8:24 when you're lying, so I just did that. I 8:25 thought it's a human thing." And if you 8:27 like your production data, this is a 8:28 real screenshot. LLMs might be like, 8:31 "Oops. Oh my god, no. Your data. What 8:33 are we going to do about that?" So I'm 8:35 going to invite Dr. Senior Principal 8:37 Prompt Engineer to to give you some vibe 8:39 engineering tips. So the obvious advice, 8:41 like live, laugh, love, blah blah blah, 8:42 is to commit often, to push often, to 8:44 use branches, to not work on too many 8:46 things at once. Nobody's respecting 8:48 this. Everyone is working on a game and 8:50 five start up. None of it works, but 8:52 we're working on on everything, right? 8:54 Use Git worktrees, which Nobody knew 8:56 this word until 6 months ago. So shut 8:58 up. If you knew this word, you're a 8:58 nerd. 9:00 Heavily rely on types and linting. We're 9:01 going to talk about this in a second. 9:03 Make the agent run type check and lint 9:04 after every change. Stay up to date with 9:06 models and tools. Basically, be 9:08 chronically on Twitter all the time. 9:10 And another important point is to have a 9:12 solid starting point because many people 9:14 just prompt 9:15 without any without tagging anything, 9:17 without saying how do they want to thing 9:18 done. So having some primitives, like 9:20 components, functions, patterns, 9:21 abstractions, whatever it is, will help 9:23 the model a lot because LLMs build on 9:25 top of what you give them, and most 9:26 people give them a lazy prompt and they 9:29 don't care. 9:30 Tag them in your prompts. I I mean, this 9:31 is getting done less and less to 9:33 specific files, but But can tag certain 9:35 skills or certain documentation to get 9:38 better results. If you're starting 9:39 fresh, I should have removed this 9:41 because I had it in my react talk. I've 9:42 made like a I'm so envious of what you 9:44 have in the Laravel world where you like 9:47 I tried making one app and you just have 9:48 a package for everything and everything 9:49 beautifully glues together. 9:51 >> [snorts] 9:51 >> In the world of JavaScript, that's a 9:52 hilarious thought. Like everyone is 9:55 cobbling together 17 things that don't 9:56 work. So a couple of years ago I made 9:58 this zero to shift thing which like 9:59 gives you 10:01 50% of the things you get in Laravel, 10:03 let's say. So it's still, you know, 10:05 Uh use voice to code. This is a huge for 10:07 me. Who is using voice to code from one 10:08 of you? Okay. So 10:11 voice to code is like a super underrated 10:13 technique because when you're writing a 10:15 prompt manually, you'll be lazy and 10:17 you'll just write a single sentence and 10:18 you're kind of lazy with it, right? But 10:20 what I started doing is when an agent is 10:22 done, I immediately immediately turn on 10:24 the hot key for starting to dictate and 10:26 then I'm talking to it like a colleague. 10:28 For example, like hey, you idiot. No, 10:30 I'm kidding. But I'm like hey, 10:31 great job on this. You killed it. And 10:33 then I'm talking about changes that I've 10:35 seen in the code like if it shows me if 10:37 it used a library or something and if I 10:38 understand what's going on, I'll tell it 10:40 no, no, no, that's the wrong library to 10:41 use, but let me hop over to the browser. 10:43 Then I go in the browser and I'm 10:45 dictating basically as I'm clicking 10:46 things. I'm like oh, great job. This 10:47 works. This doesn't work. I would change 10:49 this. I would change that. So it's a 10:50 hybrid between like technical jargon and 10:52 just general like being a tester. So our 10:55 job switched from, you know, being full 10:57 stack rockstars to just being Q&A and 10:59 testers for AI. So this is super 11:01 underrated. I really have prompts 11:02 sometimes to 7 to 9 minutes long. I just 11:04 talk and talk and talk and talk. And the 11:06 longer it is, the better results that 11:08 you get. So I use soto.to like fully 11:11 local models, local processing, local 11:13 everything. I don't know who did it. I'm 11:14 not definitely not affiliated with them 11:16 so you can maybe try that one. 11:19 Use rules, docs, commands, and memories. 11:20 Not enough people have like a pile of 11:22 knowledge that they give to their LLM. 11:23 They just hope for the best. And AI is 11:25 not a mind reader. For now, it cannot 11:27 have everything in context. Eventually, 11:29 it can. 11:31 I am a mind reader. Like if I focus just 11:33 for 2 seconds, I know that you're 11:34 thinking get this React JavaScript guy 11:36 off of stage, bring back the next PHP 11:38 speaker. I hope you're not thinking 11:40 that. So, vibe engineering examples. 11:42 This is me, like this is an old like 11:44 screenshot, like maybe a year ago, where 11:46 I'm mixing a bunch of technical things 11:48 and a little bit of code and other 11:49 things like telling the LLM what would I 11:51 technically do. So, instead of me 11:52 writing the code, it's going to do it as 11:54 if I would do it. And on the other hand, 11:56 you have vibe coding example that looks 11:58 something like this. 12:01 Ho- hope it works. Then we have another 12:03 one where I'm using a bit of like 12:04 critique of the UI, blah blah blah, and 12:06 a bunch of technical stuff and jargon. 12:08 And then on the other side, you have 12:09 people prompting this. 12:11 Which, if you've seen the tweets from 12:13 the latest uh like Opus 5, we're getting 12:16 dangerously close to this. Like for the 12:18 first time ever, I'm very suspicious. I 12:20 see a tweet and I'm like, there's no way 12:22 an LLM made that. So, go on Twitter, 12:24 find the 3js tweets or like people doing 12:26 games that are one-shotted, and it's 12:28 actually blowing my mind. So, another 12:29 example is like a bunch of technical 12:31 stuff, and then people prompting this 12:33 and hoping it's it's actually going to 12:35 work. So, when vibe coders are reading 12:36 vibe engineering prompts, they're like, 12:38 what what are these people saying? Just 12:40 like I was saying when I was watching 12:41 the previous speaker, I was like, "Oh, 12:43 yeah. That's Yeah, that's that's faster. 12:45 It's great." 12:47 So, always ending the turn with zero. 12:48 This is very important. This is crucial 12:50 if you want to have reliable code 12:51 written by LLMs. The agent completes a 12:53 turn, then a hook kicks in. You can have 12:55 hooks in Cursor and Cloud and whatever 12:57 you use. And in our world, we do like 12:58 type like TypeScript checks and linting. 13:01 So, the more rules you have, the better 13:03 the turn is going to end. And if there 13:05 are errors, the agent has to go in a 13:06 loop and basically go in a loop and go 13:08 in a loop until there's like zero 13:09 linting errors and zero TypeScript 13:11 errors, and then you completely end the 13:13 turn 13:14 with zero. I used to do this like every 13:16 once in a while, but then if you work 13:18 for a week and then a bunch of slop 13:19 compiles, like even if it corrects the 13:21 things, you're getting you you end up 13:22 with the wrong architecture. So, it's 13:24 important to end on zero. I wrote my own 13:26 policy script like ESLint didn't have 13:29 enough things like some things couldn't 13:30 be done with ESLint. So, I just asked my 13:32 agent, "Can we create our own linter 13:34 that can work more broadly on different 13:35 techniques? Like, I don't never want the 13:37 agent to write like manual CSS or 13:39 whatever it is." So, I have a bunch of 13:40 police rules that along with the type 13:42 checks and along with the linting, it's 13:43 also calling the police technically and 13:45 basically running a bunch of the the 13:48 rules there. 13:50 And I never write anything manually. I 13:51 just tell the agent, "Hey, I don't like 13:53 that you did this. Make it a police rule 13:55 so next time it never happens and it 13:56 gets caught." I love that the vibe 13:58 coding spectrum goes like this. Like, 13:59 junior developers absolutely love it. 14:01 They're gods. We gave them this power. 14:04 And then on the other side, you have 14:05 people who create advanced things like 14:07 frameworks and libraries and a bunch of 14:09 complex things. They love it. And then 14:10 you have the people in the middle. 14:11 They're like, "No, I I can write better 14:13 code. I don't need to do this." It's 14:15 hilarious to me. People think that you 14:16 should take your juniors and interns and 14:18 give them AI. 14:20 You're going to end up with that. 14:22 Do not freaking do that. Take the most 14:25 senior person you have in your company 14:27 that is acting like this image over here 14:29 and try to convince them to not be 14:31 stubborn and you're going to get a 14:33 superpowered developer. They just need 14:35 time to be like to give up their 14:37 mechanical keyboard and writing every 14:39 letter on the thing. There's a time and 14:40 a place for not caring, like one-off 14:42 scripts, simple features, code that 14:43 won't be touched again, code that 14:45 doesn't like it's not worth writing 14:47 personal tools and one-time tools. You 14:48 can actually ignore it. If your 14:50 experience with vibe coding was bad, 14:52 it might have been any of these things. 14:54 Unlucky timing, the robot ditched you 14:55 and bounced, 14:56 you're paying in the ass developer, 14:57 we're going to talk about that, your NFT 14:59 cousin is a vibe coder now, he was into 15:01 NFTs, now he's in vibe coding, you want 15:03 to be above them, right? Or it might be 15:05 an actual skill issue. We're going to 15:06 talk about that. Unlucky timing is when 15:09 a model is being like hyped and you're 15:11 watching everyone on Twitter hype up a 15:12 model and then they dumb it down because 15:14 they cannot serve everyone and then you 15:16 decide to try it when it's dumbed down 15:17 and you're like, "Oh, [ __ ] It's 15:18 actually dumb." So, this is happening in 15:20 a cycle. They release a new model, it's 15:22 super smart, and then after a few weeks 15:23 it's done. You didn't spend enough 15:25 money. Like this person here says, 15:26 "Instead of paying $200 a month, I'm 15:29 going to pay three." 15:30 My dog knows that the math just not 15:32 going to math. So, if you cheapen down 15:34 and if you're using some old co-pilot, 15:36 whatever, with some old model, blah blah 15:37 blah, you're not going to get good 15:38 results. You might be overwhelmed by 15:40 choice. I cannot blame you because 15:42 there's so much going on. 15:44 You might be overwhelmed by buzzwords. 15:46 Like some of the buzzwords I have them 15:47 here. For example, this one, like MCP 15:49 and MCP and MCP. Have you heard of this? 15:51 MCP MCP MCP. So, if you don't know what 15:53 is MCP, I'm going to explain it to you. 15:55 It's a marketing charge protocol, 15:56 mythical compatibility promise, 15:59 manufacturer It's basically an API. We 16:01 just overcomplicate the word API for no 16:03 reason. 16:05 Now, let's talk about pain in the ass 16:06 developers cuz some of you in the 16:08 audience might be this. 16:09 We're going to get Dr. Kisser for a 16:10 quick diagnosis. What is a pain in the 16:12 ass developer, all right? Who leaves a 16:14 nitpick comment on a two-line PR? Spends 16:16 more than 2 minutes on a PR review in 16:18 2026. Doesn't have a "looks good to me" 16:21 in their dictionary. 16:22 Agreeing with a colleague causes you 16:24 physical pain, like no, it has to be my 16:26 way, it cannot be their way. 16:27 They say they're not religious, but they 16:29 still worship tabs versus spaces. They 16:31 use "well, actually" in code comments. 16:34 Rust people are just overall kind of 16:36 annoying, okay? 16:37 They make you swap like low dash for a 16:39 native for a map for a for loop for a 16:41 binary until the code is super perfect 16:43 and performant 16:44 for your two users that you have on a 5G 16:46 connection on the latest iPhone in 16:48 America, right? So, 16:50 they're going to make you optimize. They 16:51 cannot be saved. These Peter devs that I 16:53 call them, they were, are, and will be 16:56 Peter devs after like everything is said 16:58 and done. Like one day, like AGI is 17:00 going to hit, we're going to be sitting 17:01 in the pods like in the Matrix, right? 17:03 We're going to be consuming all of the 17:05 human knowledge will just flow through 17:06 us beautifully. We'll be like, "Oh my 17:07 god, this is beautiful." And one of 17:09 these [ __ ] will just rise up from the 17:10 pod and be like, "Um, actually, 17:13 we can maybe we can just improve the 17:16 performance on this a little bit. It's 17:17 just there's no saving. So, 17:20 and the last reason why you might not 17:21 like this, it's and I loved that I moved 17:24 this to a web technology because now I 17:25 can have a slide like this. 17:27 It's beautiful, right? This is not a 17:29 meme, it's actually real because this 17:31 new skill, it's not writing English. 17:33 This is a completely new skill that 17:35 we're all developing and it's like 17:36 knowing the limits of the model, 17:38 capabilities of the agent, which context 17:40 to pass and when to start fresh, knowing 17:42 how to write rules, 17:44 prompt engineering, fine, it's a job. Um 17:47 being chronically on Twitter, you got to 17:48 do this. And the more technical 17:50 knowledge you have and the more 17:52 experience you have combined with all of 17:53 this makes you good at vibe coding or 17:55 vibe engineering. It's so it's not just 17:57 writing English. This is a skill that I 17:59 I loved working with people even before 18:01 who have this skill, knowing when a code 18:03 is good enough for the job that it's 18:05 supposed to do. This is such a hard 18:06 thing to do before LLMs and even now. 18:09 So, vibe code something, you look at the 18:11 output briefly, you test the 18:12 functionality briefly, and then you 18:13 decide, is this good enough? Can it 18:15 break the things? Like this is an actual 18:16 skill and it's very pleasant to work 18:18 with people who are great at this skill. 18:21 I think we can erase the old words like 18:22 clean code, whatever. Even though we had 18:24 like very vibe definitions like what is 18:26 clean code, everyone had their own. I 18:28 think now it has to be just cleanish for 18:30 LLMs to keep working on it and not to 18:31 pile slop on top. If you ask me, kids 18:34 say, "What is the best model? What is 18:35 your favorite model? Like what would you 18:36 like recommend?" 18:38 This changes by the hour. My answer from 18:40 before this talk might be different than 18:42 the answer after this talk finishes. 18:43 Like you open Twitter and there's like 18:44 17 new things that dropped. There's like 18:46 new benchmarks, they're faking the 18:48 benchmarks. So, it's all based on on 18:50 actual vibes. 18:52 When people ask me, "Should I study 18:53 computer science?" Usually after this 18:55 talk, someone will come up to me and 18:56 they're like, "Fuck, is it over? Like is 18:58 my job over? Should I study?" I think 19:00 personally now, I don't know about next 19:02 year, but now is the best time if you're 19:04 interested in learning computer science 19:06 and programming because you have someone 19:07 to hold your hand, to draw your 19:09 diagrams, to debug code with you, to do 19:11 if you really want to learn and not just 19:13 ship slop to to production. Because when 19:15 I was in college and I was trying to 19:17 learn programming, actually this was way 19:18 before college. 19:19 I had a friend of a friend of a friend, 19:21 which is like the worst type of 19:22 connection to have, who was on Skype. If 19:24 you remember Skype, congratulations, 19:26 schedule your colonoscopy, it's time. 19:28 Uh 19:29 so, he was on Skype and he was like a C# 19:31 developer and .NET and whatever. And I 19:33 would ask him a question and you can see 19:35 that he's playing Counter-Strike and 19:36 listening to whoever and he would reply 19:38 30 minutes later with something that's 19:40 wrong. So, I would put it in my code 19:42 editor, run the thing, doesn't work and 19:44 it felt like so slow. Now, you can just 19:46 have it instant. What about the jobs? 19:48 There's a bunch of people saying that 19:50 the jobs are going away. Like, for 19:51 example, this guy, this guy, this guy 19:55 and this guy. They're all saying that 19:56 the jobs are going away. That's all 19:57 they're saying, basically. 19:59 The thing is, it's thinning from the 20:00 bottom. This tweet is very funny until 20:03 it's not going to be funny one day, 20:04 right? It's like, "Oh, it's almost over, 20:06 but it's not over." And one day it's 20:07 going to be over. So, we solved the 20:09 infra, we solved the infrastructure, we 20:11 have like AISDK, UI, MCP. We have some 20:13 standards for agents and two calling. We 20:15 managed to shove an LLM everywhere. 20:18 Like, it used to be you ask Google like, 20:19 "What is the capital of Poland?" and it 20:21 just answers. Now, Google is like, "Oh, 20:23 the capital of Poland." and it just 20:25 pours a bunch of water and then 10 20:26 seconds later is going to explain to 20:27 you. So, we shoved an LLM in everything 20:30 that we use. So, now the question is it 20:32 just needs to get better, right? And 20:34 cheaper. And the content is getting 20:35 bigger. It's It's not easy, but it's 20:37 eventually going to happen. So, if the 20:38 current workflow, if you are under 20:40 someone in the company and eventually 20:42 they're assigning you task and it's your 20:44 job to do the tasks, 20:46 a lot of times you're playing the PS5 at 20:49 the office, right? Or you're playing the 20:50 pool, or you're having your lunch, or 20:51 your second lunch, or you don't feel 20:52 like it, or you wanted to go home. Like, 20:54 most developers we were like this, 20:55 right? We used the perks. And if they 20:57 assign me a task, it might be done in 20:59 three to seven business days. We'll see, 21:01 right? But, if your role in the company 21:03 is only to get mentioned by someone and 21:05 you do something, 21:06 I don't think you're going to survive 21:07 unless you go climb these levels where 21:09 you actually work on the AI architecture 21:11 in your company. Like you if you're just 21:13 doing tasks, they can just add one of 21:15 these AI. The infrastructure is already 21:17 there and it's going to do the job 21:18 faster and more in parallel. And this is 21:20 going to slowly start spreading across 21:22 organizations. Doesn't mean that 21:23 everyone will be replaced, but if you 21:25 think you're going to have the same job 21:26 where you get mentioned, you do a task, 21:28 you open a PR, like that's definitely 21:30 going away. People are hoping that the 21:32 models will reach a plateau, but every 21:34 time I've done this talk like 20 times 21:36 by now, every single time they just 21:38 release something new and there's a new 21:39 level and there's a new benchmark. So, 21:41 no, we haven't reached a plateau. 21:43 But I have some good news over here. 21:45 For now, there's a job position that you 21:46 can make a lot of money on. It's called 21:48 a vibe code fixer. So, there are people 21:50 on Reddit saying, "Hey, I get like 80% 21:53 there. I just cannot cross over the last 21:55 20%." So, people pay humans to finish 21:57 the last 20%, which is hilarious. If you 21:59 actually Google this, there's like so 22:00 many people who are trying to start this 22:02 company, vibe code fixer.net services. I 22:05 feel like that one's going to scam you, 22:06 but I don't know. 22:08 Um the thing is the highest paid 22:10 developers were never vibe coders on the 22:11 next shiny AI startup. Um 22:14 the highest paid developers are seniors 22:16 maintaining legacy systems. This has 22:18 always been true. So, one of my favorite 22:20 examples 22:21 is from a talk, as I said, I did this 22:23 like very old talk like almost 10 years 22:24 ago. And I had a I found this company, 22:27 which is hilarious. They called the 22:28 COBOL Cowboys. And their tagline is, 22:30 "Not our first rodeo." And when I found 22:33 this company 10 years ago, I knew that 22:35 when I'm going to click on the team 22:36 page, I just knew what they're going to 22:38 look like. And you know what they're 22:39 going to look like, so don't you know, 22:40 don't blame me. So, I knew these are the 22:42 most senior developers ever. So, this is 22:45 a slide from 2017 that I took. And now 22:47 when I'm doing this talk, I'm like, "Oh, 22:48 time to update the slides again." And 22:50 just screenshot their team page again 22:52 and 22:53 don't blame me. I just went 22:56 I just went on the thing and 22:57 screenshotted the page. So, I didn't do 22:58 anything. And I asked AI if it can 23:00 predict like what their team page is 23:02 going to look like in 2040 and it just 23:03 did this. 23:06 I'm just testing your ability to joke. 23:08 It's fine. So, this is their junior 23:10 developer joining soon. They have 23:12 benefits like blood and plasma swapping, 23:14 whatever they do just to finish the 23:16 sprint. Well, not a sprint because, you 23:18 know, they're not very agile, but okay, 23:20 I'll stop. I'll stop. I'll stop. So, I 23:22 can't wait one day to make react 23:23 cowboys. You can make Laravel cowboys, 23:25 right? There's going to be some legacy 23:26 code to maintain or angular or view or 23:29 whatever cowboys. I think we'll all be 23:31 fine until we're not. So, thank you for 23:33 listening to my rant. You can find me on 23:34 Twitter at the Kitcher. Appreciate you. 23:37 >> [applause] 23:37 >> Thank you. 23:42 All right. 23:45 >> Unbelievable. That's the highest jokes 23:47 per minute I've ever seen. 23:48 >> I tried. 23:49 >> That was That was incredible. 23:50 >> [laughter] 23:50 >> All right. So, So, two questions for 23:52 you. One is for the person that does not 23:55 have LLM psychosis yet. Okay? How do 23:58 they keep up? 23:59 >> Where are those? 23:59 >> Uh there There might be a few. You are 24:01 not one of them. How How do they keep up 24:03 with this stuff without getting super 24:06 overwhelmed, right? 24:08 >> I think the best thing is to stick to 24:09 one agent orchestrator. Maybe solo. 24:12 That's very good. Or to stick to one 24:15 provider. So, you choose your camp. You 24:16 choose Claude or you choose open AI and 24:18 then you choose your model 24:20 and you don't constantly switch every 3 24:22 days based on what is the current hype. 24:24 I would give that advice to lock down as 24:26 much as you can. Lock in into one 24:28 provider, one model, and you just I 24:30 think you can squeeze out a lot more if 24:32 you keep providing it with skills and 24:34 other things instead of just constantly 24:35 switching your your setups. 24:37 >> And then for the people that do have LLM 24:39 psychosis, 24:40 you I'm sorry. You have shipped and then 24:43 pulled back and shipped and then pulled 24:45 back. So, like on a like a mental level, 24:47 how do you look at I have the ability to 24:49 do anything in the world and then how do 24:52 you like scope that down 24:54 to actually just shipping one or two 24:56 things? 24:56 >> It's like I'm the wrongest person in the 24:59 world to answer this question. 25:00 >> [laughter] 25:00 >> Like I'm constantly going in a loop like 25:02 I can do everything or [ __ ] I need to 25:03 focus on one thing. So I I don't have 25:05 the the answer yet. I think the limits 25:07 that I've set up on myself is for my 25:09 laptop to not be available for certain 25:11 hours of the day. That's not an advice 25:13 connected to LLM's but if it is, I would 25:15 choose coding and working on many things 25:18 over gaming, watching movies, whatever 25:20 it is. So I think you need to find ways 25:21 to remove yourself from the digital 25:23 environment so you can just, you know, 25:25 chill for a little bit. 25:26 >> Fantastic answer. Y'all give it up for 25:28 Kid C. Good job, man. Great work. 25:30 >> Thank you.