<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Zef Hemel on Medium]]></title>
        <description><![CDATA[Stories by Zef Hemel on Medium]]></description>
        <link>https://medium.com/@zef?source=rss-6caa8962479b------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*Z2rTEJA58PXTKCQf-v9rXQ.jpeg</url>
            <title>Stories by Zef Hemel on Medium</title>
            <link>https://medium.com/@zef?source=rss-6caa8962479b------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Sun, 15 Nov 2026 15:03:22 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@zef/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The Alien Mind]]></title>
            <link>https://zef.medium.com/the-alien-mind-ecf52f0f1a16?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/ecf52f0f1a16</guid>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[ai-engineering]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Fri, 11 Apr 2025 16:48:52 GMT</pubDate>
            <atom:updated>2025-04-11T16:48:52.902Z</atom:updated>
            <content:encoded><![CDATA[<p>Ever since generative AI came into vogue I’ve been intrigued. Yet, I could never <em>quite</em> put my finger on why exactly this was. I think I finally figured it out, though.</p><p>I’ve spent a large chunk of my life (perhaps too much of it) understanding computers: how they work and what they can do. Then I got side tracked, and applied that same level of curiosity to humans: I spent many years trying understand how they work, and what can they do.</p><p>Large Language Models (LLMs) are a fascinating blend of both. Yes, it’s all computer underneath, but in <em>behavior</em> they have a surprising number of human-like properties.</p><p>How do they work? What can they do? What are their limits?</p><p><em>Peak curiosity.</em></p><p>Time to share some preliminary findings.</p><p>Here is the mental model I have adopted of LLMs:</p><p><strong>Interacting with an LLM is like dealing with a highly self-confident <em>alien mind</em> that has read the entire Internet <em>a year ago</em> with <em>mixed recall</em>. It has a significant yet <em>limited short-term memory capacity</em> that puts you on the clock.</strong></p><p>There’s a lot to unpack there, so let’s dig in.</p><p>While your interactions with an LLM may feel like interacting with a human, you’ll soon find out it has… <em>quirks</em>. Many of them subtle and surprising. It often acts <strong>alien</strong>. These quirks are not always explainable and may seem random. Certain things that are trivial for a human are going to be near impossible for an LLM (<a href="https://www.linkedin.com/pulse/limits-challenges-llms-how-many-rs-word-strawberry-mo-pcmee/">counting r’s in “strawberry” anybody?</a>), and vice versa. We have to always be vigilant and be prepared for surprises. We’re going to laugh, we’re going to cry. (Credit for framing this as an alien mind goes to <a href="https://amzn.to/4jmd1jG">Ethan Mollick</a>).</p><p>Yet, wherever this alien mind gets its information, however accurate it may be, it is going to sound <strong>extremely self-confident</strong> and smug about it.</p><p>Confusingly, it is also very <em>suggestible</em> — if you call out any mistake, or even <em>hint</em> at it — it will eagerly pivot in any direction. Be prepared to easily create a <a href="https://www.merriam-webster.com/dictionary/yes-man">yes man</a>.</p><p>“Yes, you’re absolutely right!”</p><p>While people may have the (wrong) idea that an LLM is learning all the time, in fact it is not. Its <strong>long-term memory</strong> is “baked in” and never changes. Every model version is trained <em>once</em> and doesn’t change after (asterisk, dagger).</p><p>There are various <strong>inputs</strong> to this training process, but the most notable one is tons and <em>tons</em> of text. AI companies are always a bit hand-wavy about exactly what goes in, but we can assume it’s at least a large part of the public Internet, and any other available text corpus these companies can get their hands on. Some of it of excellent quality, some of it more… Internet.</p><p>The rule of “garbage in, garbage out” applies here. You get out what you put in. This is why “western” models (trained on western-world accessible parts of the Internet) tend to proclaim more “west leaning” world views, whereas — say, Chinese models, likely trained on Chinese-accessible parts of the Internet — may lean differently. Ask <a href="https://www.deepseek.com/en">Deepseek R1</a> (a Chinese model) about the status of Taiwan for instance. I’m not sure if there are Russian models (<em>LLM models!</em>), but if there were, I’m sure that after talking to one for some stretch of time, you could really warm up to this Putin chap. Stay vigilant.</p><p><strong>Training a model</strong> is a very expensive exercise; we are talking dozens of millions of dollars in hardware and energy costs for a process that takes months. Since this process is so expensive, AI labs don’t run these training sessions daily. This is important, because we have to assume the LLM’s long term memory to be <strong>dated</strong>. Likely months or more.</p><p>The <strong>accuracy of recall</strong> of this memory is going to be mixed, because it’s highly and lossily compressed. Generally, though, the more often the LLM has “seen” the same, or similar information (e.g. from multiple sources), the more accurate its recall will <em>likely</em> be.</p><p><strong>Short-term memory in an LLM is a hack</strong>. LLMs don’t have short-term memory. At their core, they are <em>stateless</em>.</p><p><em>“Err, so why can I have a chat with it and it still remembers things I told it earlier in that same chat conversation, even days ago?”</em></p><p>What technically happens is that <em>we ship it our entire chat conversation</em> every single time we send it a new message. That’s right, every time we hit <em>Send</em>, we are reminding it of our entire conversation thus far. This is why it’s perfectly fine to continue a chat weeks or months later. With some LLM clients it’s even possible to start a chat with one model (say GPT 4o) and continue it with a completely different one, even from a different vendor (Anthropic Sonnet) without missing a beat. With coding agents this is actually quite common. You can do the planning phase with Google Gemini 2.5 pro and implementation with Anthropic’s Sonnet for instance.</p><p>This “chat conversation” is what we refer to as its <strong>context window</strong>, and it is <strong>limited</strong>.</p><p>While limited, it’s one of the dimensions in which models are quickly improving. Only a year or two ago we had context windows of around 4k <em>tokens</em>.</p><p><strong>Sidebar:</strong> Whenever “AI people” are going to talk about <strong>tokens</strong> — just smile and nod and mentally translate this to <strong>words</strong> — for most intents and purposes this is close enough.</p><p>Today, 128k-200k tokens is common with some even supporting up to a million (update from last night: llama 4 supports 10 million). For context (hah!), an average-sized novel tends to have around 90k tokens, so this is already impressive.</p><p>However, this context window is going to be filled with a multitude of things:</p><ol><li>The system prompt (that may contain specific instructions for the ongoing chat)</li><li>Your chat history thus far (both your messages and the LLM’s)</li><li>Any images, audio, video or documents uploaded</li><li>Any code it may have seen or written when used as a coding agent</li></ol><p>Especially when using LLMs to write code (Cline, Claude Code, Cursor chat), we need to feed the LLM large chunks of our code base to get useful answers. Any code base of significance won’t fit, so a big part of building coding agents is about selectively picking out the most relevant pieces. And like humans, if you overwhelm it with too much information it can completely get lost and no longer see the forrest through the trees. TMI!</p><p>The moment you hit the context window limit, it’s effectively game over. You have to start from scratch (<em>who are you again?</em>). Some LLM clients may attempt to auto summarize (“compact”) context to keep going. However, this is where even more amnesia starts to happen, because inevitably information is lost. If you wonder why your conversations start to get weirder and weirder over time, this is likely why. Or it’s just getting late and you should really go to bed.</p><p>Note that while I said “over time”, the dimension of time is actually irrelevant. The size of the context window (which increases in every interaction) is the only thing that puts you on the “clock”.</p><p>To make this all even more fun, the <strong>mixed recall</strong> and <strong>alien mind</strong> aspects also apply to the context window. Some of this context the LLM will strictly take into account, more strictly than what it recalls from its long-term memory. However, some of it it may randomly ignore. Sometimes. And when we try again, we may see different results yet again.</p><p>It’s unpredictable.</p><p>Almost like a human.</p><p>Just… <em>alien</em>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ecf52f0f1a16" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Levels of AI Coder Adoption]]></title>
            <link>https://zef.medium.com/levels-of-ai-coder-adoption-ff2d420e78e3?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/ff2d420e78e3</guid>
            <category><![CDATA[ai-coding]]></category>
            <category><![CDATA[ai-engineering]]></category>
            <category><![CDATA[ai]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Fri, 11 Apr 2025 16:25:59 GMT</pubDate>
            <atom:updated>2025-04-11T16:25:59.200Z</atom:updated>
            <content:encoded><![CDATA[<p>I can’t go to parties anymore without the topic of AI coming up.</p><p>“How can I get started with vibe coding? What AI code editor should I use?”</p><p><em>I attend parties with a very specific audience. Indeed, parties filled with cool people.</em></p><p>Inevitably the party devolves into an ad-hoc consultancy session.</p><p>“Well that depends, where are you in Zef’s Level Framework of AI Coder Adoption (ZLFOAICA™)?”</p><p><em>I know right, I should really consider a career in consultancy. And get better at branding. If only I would start the clock for my astronomic consultancy fee to kick in before I reveal all my secrets.</em></p><p>“Level framework!? How exciting, tell me more!”</p><p>“<em>Fine</em>, let me pull up my deck. Can somebody bring me a beer?”</p><h3>Level 1: ChatGPT as The Source of All Coding Knowledge</h3><p>Before November 2022, when encountering a confusing compiler error, or when hitting some random programming problem, we’d “Google it.”</p><p><a href="https://letmegooglethat.com/?q=What+is+google%3F">Remember Google</a>?</p><p>Ideally, this would (fingers crossed) lead to a <a href="https://stackoverflow.com/questions">StackOverflow</a> question (remember StackOverflow?) that would provide exactly the answer to our problem. Not always, though. And the answer would not always be correct. But hey, it’s something.</p><p>This is when the “StackOverflow developer” was born. A threat to us <em>real</em> engineers, that had to struggle to gain our knowledge in a largely pre-Internet age. Imagine being able to get things done without having gone through all the suffering that builds much-needed character. Would you like to to see my scars?</p><p>Us — the <em>programming elite</em> — would sniff in disgust at this new-fangled approach.</p><p>The future would say: hold my beer.</p><p>Speaking of beer, I could really use a refill.</p><p>Then <a href="https://openai.com/index/chatgpt/">OpenAI launched ChatGPT</a>, and people were quick to figure out that ChatGPT had read the Internet, including StackOverflow and Github, and could pretty accurately regurgitate relevant bits of it, sometimes capably translated to the programming language of your choice.</p><p>At first this was a <em>faux pas</em>. You don’t do that. Ask a chatbot a programming question? What are we? Animals?</p><p>Never.</p><p>But here we are, 2–3 years later and everybody’s doin’ it.</p><p>If you haven’t tried getting your coding problem solved with the help of ChatGPT, don’t even bother talking to me.</p><p>We’re all here now, at level 1.</p><h3>Level 2: Telepathic tab complete</h3><p>Chronologically slightly earlier (February 2022) — but for the purposes of our narrative: ages later — Github <a href="https://github.blog/news-insights/product-news/introducing-github-copilot-ai-pair-programmer/">announced Github Copilot</a>. This introduced the concept of “tab auto complete” to the world. Finally, a <a href="https://www.reddit.com/r/programming/comments/p1j1c/tabs_vs_spaces_vs_both/">valid use case for the tab key</a>.</p><p>Any IDE worth its salt has had completion for things like function and method names for ages (another feature that the Emacs and Vim programming elite long sniffed at: “you should just know your entire stack’s API by heart”), but Copilot’s tab complete was (occasionally) next level.</p><p>Rather than just completing a method name, it could autocomplete entire sections of code. In a moment of existential hesitation, whenever you’d pause your frantic code typing for a few seconds, it would all of a sudden, seemingly telepathically, complete the rest of a method for you; write you that for loop; suggest you that JSDoc that you <em>definitely</em> planned to write. All you had to do was hit <em>Tab</em> to accept.</p><p>Err, <em>whut</em>!?</p><p>This was a harsh reality check for a lot of us. Because, if a tool like this (built on the same LLM technology as ChatGPT), could successfully write the code we actually <em>intended</em> to write ourselves then… was our unique, creative, expensive skill really all that unique, creative and valuable?</p><p>Luckily, Copilot was still pretty bad. It would get basic things like balancing parentheses wrong, and would attempt to hallucinate all kinds of APIs into existence.</p><p>A fun toy, but not for <em>serious engineers</em>.</p><p>At first.</p><p>However, models evolved, and Copilot with it. Competition like <a href="https://www.cursor.com/">Cursor</a> made this telepathic tab complete <em>so good</em> that it became hard to ignore. Today, Cursor (and the most recent Copilot versions) even anticipates changes you are likely to want to make in other places, including other files in your code base.</p><p>And hence, the “Tab-tapping developer” was born.</p><p><em>Tab. Tab.</em></p><p>If you’re not using telepathic tab complete today, you’re missing out.</p><p>Many of us are here, at level 2. Just pay your $20/month to Microsoft or Cursor.</p><p>Up to this level, we don’t have to significantly adjust our day-to-day workflows. Rather than Googling things, we ask the same question to our new BFF ChatGPT. We still use an IDE, typin’ the codez, we “just” get telepathic code suggestions. Nobody saw you just hit tab on that suggestion. Just pretend you wrote it yourself. Unless it has an off-by-one error, then blame the AI.</p><p>Things start to shift at level 3.</p><h3>Level 3: CHOP, CHOP!</h3><p>At this level, I’m a bit fuzzy on the chronological order of things.</p><p>Even though Copilot may have launched with some sort of IDE-integrated chat, I’m not sure if it actually was able to change code in place or even read your code base, or if it was more like a “we heard you like ChatGPT, so we we put it in your VS Code <a href="https://notes.snowy-chicken.ts.net/tag:YouAreWelcome%E2%80%9D">#YouAreWelcome”</a></p><p>Anyway, at some point in ancient AI history (likely last week), a new type of tool started to emerge: the <strong>chat coding agent</strong>.</p><p>These agents wouldn’t just generate you some code based on a question, like ChatGPT, but they’re able to dig into your existing codebase and <em>agentically</em> make changes.</p><p>Before we proceed, let me give you the <em>real</em> definition of “agent,” because it’s a bit of an overloaded term.</p><p><strong>An agent is a process that will <em>autonomously</em> (so without significant human intervention) go off and (attempt to) complete a non-trivial task.</strong></p><p>There. Was that so hard?</p><p>While early chat coding agents were quite limited and dumb (I can say that, because they don’t have feelings), today such tools have grown to be shockingly competent. They happily grep through your code base, read documentation, browse the web, apply significant code changes, write and run tests, and in cases even spin up a browser and autonomously navigate the web app they’re building.</p><p><a href="https://www.youtube.com/watch?v=hmSsFVPmHKA">Here is 38 minutes of me pairing with Cursor to build a YAML patch library</a>. No hands!</p><p>Steve Yegge coined the term “CHOP — <strong>Chat Oriented Programming</strong>” for this way of working in his dramatic article <a href="https://sourcegraph.com/blog/the-death-of-the-junior-developer">The Death of The Junior Developer</a>. Regrettably, he <a href="https://sourcegraph.com/blog/revenge-of-the-junior-developer">seems to opportunistically have jumped on the vibe coding bandwagon</a>, which <a href="https://www.youtube.com/watch?v=vl9smwUOPFw">in my mind is a big mistake</a>. But hey, we’ll see. I’ll still refer to it as <em>CHOP</em>, to clearly separate it from <em>vibe coding</em>, which we’ll get to later.</p><p>In CHOP, the big shift that happens compared to level 2 is that your main interaction channel shifts from the <em>code editor</em> to the <em>chat box</em>.</p><p>Rather than typing code by hand, <strong>you have the agent write it for you</strong>.</p><p>Not snippets; all of it.</p><p>And good for me, a shocking number of management best practices apply, so this is a great opportunity for people managers to get back in the coding game.</p><p>“Make it work or you go to jail!”</p><p>Some notable tools in this field (at the time of this writing, but check in again tomorrow) are:</p><ul><li><a href="https://www.cursor.com/">Cursor</a> (it does both telepathic tab complete and CHOP quite well)</li><li><a href="https://cline.bot/">Cline</a> and its forked sister <a href="https://roocode.com/">RooCode</a></li><li><a href="https://docs.anthropic.com/en/docs/agents-and-tools/claude-code/overview">Claude Code</a></li><li><a href="https://windsurfai.org/">Windsurf</a> (which I always confuse with <a href="https://tailwindcss.com/">Tailwind</a>)</li><li><a href="https://github.com/features/copilot">Github Copilot</a> also joined in with its new agent mode</li></ul><p>All of these evolve rapidly. Whatever you may be reading on X or Reddit (“it is over, &lt;&lt;insert flavor of the day&gt;&gt; won.”). It is not over. Nobody won. We still have long ways for these tools to get better, <em>even if</em> the models that power them (primarily Anthropic’s Sonnet models for now) will plateau in performance.</p><p>Is this real? Can we really now let <em>all our code</em> be generated by AI agents?</p><p><em>Well</em>, there’s nuance to that. For now, and perhaps forever.</p><p>But already today, I would argue that a significant enough class of problems can be completed by AI. However, <a href="https://www.youtube.com/watch?v=hmSsFVPmHKA">there’s engineering skill required</a> to babysit these agents. And whatever people that are trying to sell you their $1000 AI coding courses may claim — we’re all still learning how to best approach this. And then a new model comes out, and we have to relearn things again. And then another release of Cursor or Cline comes out. And the rules change once more.</p><p>Far fewer people or companies are here, at level 3.</p><p>Nevertheless, this is now my aspirational level. It’s good to aim high.</p><p>The gains start to become significant at level 3. I complete tasks this way in 15 minutes that otherwise would cost me many hours. I take on projects that otherwise I wouldn’t bother to start, because I have confidence that an AI agent will be able to figure them out for me without me having to spend the same amount of brain cycles.</p><p>It does <a href="https://simonwillison.net/2025/Mar/11/using-llms-for-code/">require building some skill</a>. Not every task is suitable, not every prompt will work.</p><p>Except: “Fix it now, or you go to jail!”</p><p>So, this is it then? Is it over? No more artisan, hand-crafted code?</p><p>We’re not there yet. Nevertheless, we should be warming up to the idea that this will be our future, and to some degree can already be our reality today.</p><p>Is level 3 at least <em>it</em> then? Is this peak AI?</p><p>Likely not. There will be levels beyond, but <a href="https://sourcegraph.com/blog/revenge-of-the-junior-developer">those are more projection than reality</a>. We’ll <a href="https://www.youtube.com/watch?v=vl9smwUOPFw">go there when we get closer</a>.</p><p>In the mean time, let’s take a bit of a side step.</p><h3>Level X: Vibe Coding</h3><p>February 3rd, 2025 will the day that will go down in history as the day that <a href="https://en.wikipedia.org/wiki/Vibe_coding">vibe coding</a> was coined.</p><p><a href="https://x.com/karpathy/status/1886192184808149383">Andrej Karpathy</a> on <em>X</em> (formerly known as Twitter, originally known as <a href="https://x.com/jack/status/20">twttr</a>, once a fun place, now my primary place to get high on the AI hype wave):</p><blockquote><em>There’s a new kind of coding I call </em><strong><em>“vibe coding”</em></strong><em>, where you fully </em><strong><em>give in to the vibes</em></strong><em>, embrace exponentials, and </em><strong><em>forget that the code even exists</em></strong><em>. It’s possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good. Also I just talk to Composer with SuperWhisper so I barely even touch the keyboard. I ask for the dumbest things like “decrease the padding on the sidebar by half” because I’m too lazy to find it. I “Accept All” always, I don’t read the diffs anymore. When I get error messages I just copy paste them in with no comment, usually that fixes it. The code grows beyond my usual comprehension, I’d have to really read through it for a while. </em><strong><em>Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away. It’s not too bad for throwaway weekend projects, but still quite amusing.</em></strong><em> I’m building a project or webapp, but it’s not really coding — I just see stuff, say stuff, run stuff, and copy paste stuff, and </em><strong><em>it mostly works</em></strong><em>.</em></blockquote><p><em>(Emphasis mine)</em></p><p>Vibe coding, by its original definition, is where CHOP (which still depends on engineering skill) devolves into “forget the code even exists.”</p><p>Notable parts of that original tweet that have since been forgotten:</p><ul><li>“Sometimes the LLMs can’t fix a bug so I just work around it or ask for random changes until it goes away”</li><li>“It’s not too bad for throwaway weekend projects, but still quite amusing”</li></ul><p>A better name would perhaps have been “YOLO Coding,” but I think that ship has sailed.</p><p>My uncle is WhatsApp’ing me literally as I type these words asking for some tips to get started with vibe coding. My CEO is doing it. Our product managers are doing it.</p><p><a href="https://www.youtube.com/watch?v=JeNS1ZNHQs8">Just do it. Adidas.</a> I need to get myself some vibe coding glasses.</p><p><a href="https://x.com/leojr94_/status/1900767509621674109">Leo</a>:</p><blockquote><em>my saas was built with Cursor, zero hand written code<br> AI is no longer just an assistant, it’s also the builder<br> Now, you can continue to whine about it or start building.<br> P.S. Yes, people pay for it</em></blockquote><p><a href="https://x.com/leojr94_/status/1901560276488511759">Leo, 2 days later</a>:</p><blockquote><em>guys, i’m under attack ever since I started to share how I built my SaaS using Cursor<br> random thing are happening, maxed out usage on api keys, people bypassing the subscription, creating random shit on db<br> as you know, I’m not technical so this is taking me longer that usual to figure out for now, I will stop sharing what I do publicly on X there are just some weird ppl out there</em></blockquote><p>“Real engineers” will still have a job.</p><p>Fixing other peoples’ vibe coded train wrecks.</p><h3>Valid vibes</h3><p>Even though it’s attractive to make fun of vibe coders, and I’m happy to do so — vibe coding cannot be dismissed.</p><p>Vibe coding tools are already amazing for prototyping; for trying things out and see if they work. Vibe coded software, although its technical quality is anything but guaranteed, is <em>way</em> better than creating a sketch of an idea on a paper napkin. You can play with these prototypes, develop a feel for how they work in practice. You can have (potential) customers interact with it. And you really don’t need technical skills to do it.</p><p>That’s pretty cool.</p><p>There are many dedicated tools entering this space now with a non-technical audience in mind. Some notable examples:</p><ul><li><a href="https://lovable.dev/">Lovable</a></li><li><a href="http://bolt.new/">Bolt</a></li><li><a href="https://v0.dev/">v0</a></li></ul><p>These tools probably all aspire to have you ship production-grade apps, eventually. In some cases they may be able to get you there. But I think there’s still some ways to go.</p><p>What is the scope of what these apps will be able to deliver is still unclear to me. Will they truly be a full alternative to hiring “real” engineers? Existentially, I would surely hope not. But they are impressive nonetheless, and you should be trying them out.</p><p>Are they going to be level <em>n + 1</em>? This is the big question.</p><p>If you’re an engineer today, I’d recommend to start to make strides towards level 3: CHOP.</p><p>Even without the hand-wavy claims that “models will get infinitely better in the future.” Yes, likely, <em>some</em> of the techniques you need today to be effective will become irrelevant, some will not. Welcome to software development, who still hand-rolls assembly these days? What game designer still builds their own 3D engine? A few, but not many. Yet, there is still value in having followed along on the journey as the fundamentals were figured out.</p><p>And the fundamentals are being figured out right now.</p><p>Get comfortable chatting up your AI agent to build the stuff exactly the way you like it. With tests. With documentation.</p><p>Coach it into the standard of engineering that you sweated to attain, but do it within its context window. Then do it again after you are forced to hit <em>Cmd-n</em>, and it has forgotten everything you ever taught it.</p><p>This will be our legacy. This is where we hand over our craft to the next generation.</p><p>Of stochastic, probabilistic token predicting algorithms.</p><p>As we always hoped we would.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=ff2d420e78e3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Kicked Out]]></title>
            <link>https://zef.medium.com/kicked-out-5c06f0c8ad9f?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/5c06f0c8ad9f</guid>
            <category><![CDATA[parenting]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Sat, 02 Nov 2024 17:56:33 GMT</pubDate>
            <atom:updated>2024-11-02T17:56:33.502Z</atom:updated>
            <content:encoded><![CDATA[<p>Krav Maga is a self-defense sport originally developed by the Israeli military. It takes a “no-frills” approach to self defense. Whereas in Eastern martial arts like <em>Kung-Fu</em> or <em>Aikido</em>, one may learn elaborate, beautiful, dance-like responses to an attack, in Krav Maga you simply learn to kick ’em in the groin. Conceptually, <a href="https://www.youtube.com/watch?v=kQKrmDLvijo">this famous Indiana Jones scene sums it up</a>.</p><p>While you may identify this “directness” as something compatible with Dutch culture, you would likely not immediately point to my oldest son Maks (11) as an obvious fit for such a sport.</p><p>Like his parents, Maks is not violent. He is not aggressive. He will not quickly pick a fight (except perhaps with his brothers).</p><p>Nevertheless, for the last year or so, Maks took part in a Krav Maga group for kids and had a great time.</p><p>That was until last month, when he was kicked out.</p><p>We found Krav Maga kind of randomly. A friend of my son’s once participated in a different sport. Next door a Krav Maga training was going on, and he decided to join that instead. He told my son about it and they started to go together. This Krav Maga group was targeted at kids between the ages of 7 and 12. It involved more playful exercise like running and rolling than “hardcore” Krav Maga technique.</p><p>Obviously, these are kids, so there would be the occasional rough housing. And from time to time, my son would get hurt, on occasion too emotional to immediately recover. In such cases, I’d take him home. That’s fine. It’s expected. And somewhat surprisingly to me, he was quite resilient, it never lead him wanting to quit.</p><p>Then, about a month ago there was another incident. A new, older kid threw a large skippy-like ball in Maks’ direction, and he was thrown back and fell onto the floor. He was hurting quite badly, and ran crying out of the room.</p><p>While the Krav Maga instructor wasn’t there when this happened, he had seen it happen peripherally. He wrapped up a chat he was having with a parent, and then came to me and Maks. Maks was still in a very emotional state.</p><p>“Come with me Maks,” he said.</p><p>“Where?”</p><p>“Into the room.”</p><p>“Why?” <em>Still sobbing.</em></p><p>“Just come with me into the room. I have something to say.”</p><p>“But why?”</p><p>“Just come.”</p><p>At this point I felt I had to interfere a bit and suggested that Maks should just go, because probably the instructor had something to say to the group about what just happened.</p><p>Reluctantly, Maks came along.</p><p>Indeed, the instructor gave a speech about how what had happened was not OK. About how they should be more careful, and being in the room without him was OK, but he needed to trust that things wouldn’t escalate.</p><p>When he was done, Maks — still upset — wanted to leave the room again and sit with me.</p><p>“Where are you going?” the instructor asked.</p><p>“Outside.”</p><p>“No Maks, you’re staying here. You can sit here until you’re ready and the join back in. Where does it hurt? It can’t be that bad.”</p><p>“I don’t want to.”</p><p>“Sit.”</p><p>Again, I encouraged Maks to just stay and see what would happen. He could join back in whenever he felt ready.</p><p>Half the lesson passed, then Maks came out of the room. He was sent away: if he wouldn’t participate, he may as well go.</p><p>We went home.</p><p>The next week before the lesson started the instructor called me and Maks to him.</p><p>“Maks, you need to know something. I run these trainings because I <em>want</em> to, not because I <em>have</em> to. I don’t need the money, I do this because I like it. This also means that I feel I can make some demands from everybody in this group.”</p><p>Maks nodded.</p><p>“The thing I want you to commit to is to follow the rules. If you want to participate, you have to do as I say. Your dad already paid for the entire year, but I’ll happily give you that money back if you’re not willing to commit. You don’t have to be here, it’s your choice. But if you choose to be here, you need to follow my rules. Are you willing to do that?”</p><p>“Yes, but…”</p><p>“No no no. No ‘buts.’ I need your full commitment. It’s ‘yes’ or ‘no.’ No ‘buts.’”</p><p>“I’ll try.”</p><p>“No no no. There’s no ‘I’ll try.’ There is only ‘yes’ or ‘no.’”</p><p>Maks was very confused. I suggested the instructor started the training while I’d talk to Maks.</p><p>From birth, both Maks and his brothers were raised with the idea that everything is a conversation. Rather than putting up a lot of strict rules and boundaries, me and my wife always spend a lot of time explaining the rationale, the <em>why</em> behind just about everything.</p><p>Even while on occasion we’d forcefully pull them back when they were about to cross the street without checking for traffic, this would always be followed by an elaborate discussion on the dangers and the importance of always properly checking if all is clear.</p><p>Also when picking schools, we had opted for ones that created space to explain. Where there was always space for a conversation.</p><p>Implicitly, this had also steered how our social environment evolved. You tend to select people that have a compatible world view.</p><p>At some abstract level, me and my wife realized we were letting the kids grow up in a bit of a bubble. We knew that at some point, they’d hit a bubbly wall.</p><p>I had somehow never anticipated we’d hit such a wall with Krav Maga.</p><p>However, as it turned out — in his youthful wisdom — my son had.</p><p>“Ok Maks. We have a decision to make. What are you thinking?”</p><p>“I don’t like that I have to make a decision just like that and we can’t talk about it.”</p><p>I was also very surprised about the abruptness of this ultimatum. It didn’t seem fair and kind of out of the blue.</p><p>That said, one thing I had noticed Maks had been struggling with is that he’s taking some things too literally. In his mind, committing to follow the rules would mean there would be no exceptions possible, ever.</p><p>I had learned that in general commitments like this could be taken with a grain of salt. Whether personal or professional, while we make commitments all the time, everybody understands that if everything doesn’t go <em>exactly</em> according to the commitment, it’s usually not the end of the world. There is room to wiggle. Of course, directionally we go for it. But, you know, life is uncertain. Things happen. If you would only be able to make commitments about things <em>fully</em> in your control, you would likely have to miss out on a lot of stuff.</p><p>And Maks <em>really</em> enjoyed Krav Maga. Until 10 minutes ago, we had no plans to quit. So, perhaps it was time to be a little pragmatic?</p><p>As it turned out, Maks understood all this. However, over the past year there had been a few cases during Krav Maga sessions where he ran into a (virtual) wall. There had been cases where he got very emotional (usually due to being in pain) and he had seen no hints of understanding from the instructor’s side, and no space for a conversation. He knew this would happen again. And he wanted to keep the option open of opting out in such cases. To simply not participate, to even leave whether that was “following the rules” or not.</p><p>Saying “yes I will always follow the rules” (implicitly: “yes, I will always do as I’m told”) to Maks would just mean he’d be lying.</p><p>He didn’t want to lie.</p><p>I’ve had many jobs in my life. Some easy, some challenging. By far, parenting is the hardest job I ever had.</p><p>You put so much time and energy into it, yet a lot of the time you feel you’re failing.</p><p>However, on occasion, you have those little sparks. Those little moments when you realize that you must have been doing <em>something</em> right.</p><p>Maks resigned from Krav Maga that day. Still, I’ll keep framing this event as being kicked out, because it sounds cooler.</p><p>The instructor was quite surprised.</p><p>“Be warned,” the instructor told me, “Maks will keep running into this. Discipline matters. It’s important to learn to follow the rules.”</p><p>And of course I agree. There’s a time and place for rules. However, there ought also be time and space to explore where those rules come from, to challenge them, and to understand where there’s flexibility.</p><p>No such space existed in this particular Krav Maga group. Nor likely on the battle field where it originated. We can have peace with that.</p><p>Now we just have to find Maks another sport that he will enjoy just as much.</p><p>Kick boxing perhaps?</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5c06f0c8ad9f" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Welcome to The Show]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://zef.medium.com/welcome-to-the-show-7e8e95dbbc11?source=rss-6caa8962479b------2"><img src="https://cdn-images-1.medium.com/max/1024/0*5orES1smxX4X3pFj" width="1024"></a></p><p class="medium-feed-snippet">I sometimes lie awake at night mentally preparing for a critical meeting.</p><p class="medium-feed-link"><a href="https://zef.medium.com/welcome-to-the-show-7e8e95dbbc11?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/welcome-to-the-show-7e8e95dbbc11?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/7e8e95dbbc11</guid>
            <category><![CDATA[leadership]]></category>
            <category><![CDATA[management]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Sat, 15 Jun 2024 13:58:31 GMT</pubDate>
            <atom:updated>2024-06-15T13:58:31.675Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Zef’s Bookshelf of Mindfuckery]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://zef.medium.com/zefs-bookshelf-of-mindfuckery-c2651feb9f7b?source=rss-6caa8962479b------2"><img src="https://cdn-images-1.medium.com/max/2230/1*Z33zutkgVjp0-ZRWdE8fEA.jpeg" width="2230"></a></p><p class="medium-feed-snippet">Tell me about one of your most strongly held beliefs.</p><p class="medium-feed-link"><a href="https://zef.medium.com/zefs-bookshelf-of-mindfuckery-c2651feb9f7b?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/zefs-bookshelf-of-mindfuckery-c2651feb9f7b?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/c2651feb9f7b</guid>
            <category><![CDATA[books]]></category>
            <category><![CDATA[mind]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Sat, 01 Jun 2024 07:29:30 GMT</pubDate>
            <atom:updated>2024-06-01T07:29:30.232Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Coconut Radios]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://zef.medium.com/coconut-radios-b6b1f511af68?source=rss-6caa8962479b------2"><img src="https://cdn-images-1.medium.com/max/1024/1*-mXhjfTD5ftEsxqJYWurug.jpeg" width="1024"></a></p><p class="medium-feed-snippet">During the second world war, soldiers would land on tiny islands of Melanesia in the south-western pacific ocean. They would airdrop cargo&#x2026;</p><p class="medium-feed-link"><a href="https://zef.medium.com/coconut-radios-b6b1f511af68?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/coconut-radios-b6b1f511af68?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/b6b1f511af68</guid>
            <category><![CDATA[cargo-cult]]></category>
            <category><![CDATA[first-principles]]></category>
            <category><![CDATA[management]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Tue, 28 May 2024 14:39:04 GMT</pubDate>
            <atom:updated>2024-05-28T14:39:04.146Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[The Gaslighting Elephant in the Feedback Room]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://zef.medium.com/the-gaslighting-elephant-in-the-feedback-room-80eaeadbca98?source=rss-6caa8962479b------2"><img src="https://cdn-images-1.medium.com/max/1792/1*VH_FmqtXv7OdCZeHgGkIaA@2x.jpeg" width="1792"></a></p><p class="medium-feed-link"><a href="https://zef.medium.com/the-gaslighting-elephant-in-the-feedback-room-80eaeadbca98?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/the-gaslighting-elephant-in-the-feedback-room-80eaeadbca98?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/80eaeadbca98</guid>
            <category><![CDATA[performance-reviews]]></category>
            <category><![CDATA[feedback]]></category>
            <category><![CDATA[management]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Fri, 17 May 2024 12:05:17 GMT</pubDate>
            <atom:updated>2024-05-18T16:18:19.616Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[What We Lost]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">After wrapping up my last meeting of the day, I walk back into the open space. Somewhat disoriented I&#x2019;m trying to recall at which desk I&#x2026;</p><p class="medium-feed-link"><a href="https://zef.medium.com/what-we-lost-6be414b271dd?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/what-we-lost-6be414b271dd?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/6be414b271dd</guid>
            <category><![CDATA[management]]></category>
            <category><![CDATA[remote-working]]></category>
            <category><![CDATA[remote-work]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Sun, 12 May 2024 17:16:54 GMT</pubDate>
            <atom:updated>2024-05-12T17:16:54.502Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[The Empathy Games]]></title>
            <link>https://zef.medium.com/the-empathy-games-b5001bc28d9b?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/b5001bc28d9b</guid>
            <category><![CDATA[management]]></category>
            <category><![CDATA[management-and-leadership]]></category>
            <category><![CDATA[empathy]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Fri, 03 May 2024 14:09:42 GMT</pubDate>
            <atom:updated>2024-05-03T19:02:41.419Z</atom:updated>
            <content:encoded><![CDATA[<p>Let’s play a little game.</p><p>I’ll call these games <em>The Empathy Games</em>. It’s like <a href="https://en.wikipedia.org/wiki/The_Hunger_Games">The Hunger Games</a>, except it’s pretty much unrelated. I think. Rather than everybody but one dying in the end (or two, I suppose — I watched the first movie but didn’t care much for it, so not 100% sure), in <em>The Empathy Games</em> everybody lives at the end. Unless something really random happens. In fact, I’d argue that the chances of survival of the participants <em>increase</em> if you play, now that I think of it. That’s pretty cool. So it’s perhaps the inverse of <em>The Hunger Games</em>. Also: it’s a path to world peace. <a href="https://zef.plus/trust-world-peace/">Again</a>.</p><p>Anyhoo. Here’s how the game works.</p><h3>Level 1</h3><p>Pick a person elsewhere in your company that you really don’t understand, that shows behavior that seems pretty <a href="https://dictionary.cambridge.org/dictionary/english/batshit">batshit crazy</a> to you. It can even be a group: a team, a department.</p><p>“Oh those people in <em>X</em> really don’t know what they’re doing; completely incompetent!”</p><p>“Oh that person <em>Y</em> always pulls stuff like that, we’ve been trying to change this but… nope. There they go again!”</p><p>“Oh that’s classic <em>Z</em> behavior. They have zero understanding of what really matters, they just do whatever the heck they want, not a care in the world! Sounds fun having a job like that, livin’ the life!”</p><p>You may want to dial these down or up depending on how judgmental you are, but you get the idea.</p><p>Got somebody, or a group in mind?</p><p>If not: congratulations, you win.</p><p>For everybody else, and it admit it: that includes you — let’s proceed.</p><p>We now have two options.</p><p>You can play this game on <em>Easy</em> mode, or <em>Hard</em> mode. Confusingly, depending on your personality/skillset one mode may be <em>Hard</em> for one, and <em>Easy</em> to the other. Let me just describe the modes, and you decide which one works for you.</p><p>The first play mode is to <em>imagine</em> doing the exercise and <em>predicting</em> the result. The second option is to <em>actually do</em> the exercise for realzies, and <em>discover</em> the result. The first requires less effort, but may be hard for some people (with lower empathy skills) to do, the second obviously will have the bigger impact but requires more commitment and negotiation — as you’ll see.</p><h3>The exercise</h3><p>Imagine living alongside the person or group you have in mind for a few weeks or even months.</p><p>Every morning, you sit next to them at their desk. You join the same meetings. You read their Slack conversations. You join them on their coffee breaks, talk about their life story, their education, their previous jobs. You join them at the dinner table, hearing the conversations they have with their family (if any). You follow along as they interact with you, or your group, from their perspective. Once or twice, you have a beer with them after work. Or a green tea, if that’s more your thing.</p><p><em>Imagine</em> doing this, or somehow negotiating <em>actually</em> doing this.</p><p>We can take a little break here as you perform this exercise. Go ahead. I’ll wait.</p><p>Back? Ok.</p><p>Now, after performing this exercise, is your conclusion still: yep, I was right — this person/group is completely crazy. I have no idea why they do what they do, what they’re trying to achieve or why they work this way. It’s confirmed: they’re just insane.</p><p>Or… <em>Or…</em> (to quote <a href="https://en.wikipedia.org/wiki/Barney_Stinson">Barney Stinson</a>)</p><p>Do you think that — even though you may just have <em>imagined</em> this exercise and don’t know what you’ll uncover — chances are high that you’ll actually understand their perspective, and things make a lot more sense?</p><p>Is it perhaps <em>at all</em> possible that from their perspective, <em>you’re</em> the crazy one. And in fact you may both be <em>righ</em>… err <em>wrong</em>?</p><p>🤔</p><p>Did you get there? If so, you are now ready for the next level. If not, replay in <em>Hard</em> mode, and actually do the exercise for real.</p><h3>Level 2 and beyond</h3><p>The next level is harder, but if you continue, and progress to the levels after that, your perspective on people may actually change forever. <em>Forever!</em></p><p>Yes, I do enjoying dialing up the drama whenever I can. I mean, I’m a manager, what other opportunities for drama do I have?</p><p><em>Forever!</em></p><p>I’m not much of a gamer (the only games I enjoy are mind games) and therefore my level design skills are rather poor. Therefore, level 2 is mostly a repeat of level 1 with one twist. In level 2, we don’t look for somebody or a group <em>in our company</em> that we don’t fully get. Instead, we pick one a bit farther away. Perhaps it’s a political party. Perhaps it’s people in another country.</p><p>Imagine being brought up with these people, living alongside them for weeks, months, years. Depending on the case, having gone through the same life experiences, same history, same traumas.</p><p>Now from their perspective, look back at you. What do you look like?</p><p>Whether or not you are successful seeing exactly what they see, can you at least imagine that you’ll be surprised? That in fact, when you’re <em>there</em>, their actions and behavior make sense?</p><p>🤔</p><p>Feel free to progress to more advanced levels from here. Moving the target farther and farther away. Think of the noisy neighbor, the homeless person on the street. Or the end boss: the most evil people you can think of. What is their origin story? What did their gene pool look like? What did their life look like up to this point? Could that explain anything?</p><p>You get the idea.</p><p>I’ve joked on <a href="https://zef.plus/trust-world-peace/">various occasions</a> about randomly wandering onto a path to world peace. This is another one. I think that if everybody would play <em>The Empathy Games</em>, there would be no more war. People would get along.</p><p>But once more, I have to disappoint. This won’t happen. It’s too hard. It takes too much energy. Life is complicated enough to figure out for ourselves, trying to do this for every person that we meet so that we can understand their actions is not realistic.</p><p>It’s easier to whip out a quick judgment. “Oh yeah, that’s classic <em>X</em>, they always Pull Shit like that.”</p><p>But perhaps we don’t have to? Even if we can’t always explain people’s actions, approaches and attitudes, that doesn’t mean there’s no good explanation for them.</p><p>Perhaps assuming good intent is all we need to be able to do.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b5001bc28d9b" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The Inverse Self-Fulfilling Prophecy Maneuver]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-snippet">I don&#x2019;t really care about winning; I&#x2019;m not at all competitive.</p><p class="medium-feed-link"><a href="https://zef.medium.com/the-inverse-self-fulfilling-prophecy-maneuver-07217776a962?source=rss-6caa8962479b------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://zef.medium.com/the-inverse-self-fulfilling-prophecy-maneuver-07217776a962?source=rss-6caa8962479b------2</link>
            <guid isPermaLink="false">https://medium.com/p/07217776a962</guid>
            <category><![CDATA[organization-design]]></category>
            <category><![CDATA[management]]></category>
            <category><![CDATA[psychology]]></category>
            <dc:creator><![CDATA[Zef Hemel]]></dc:creator>
            <pubDate>Fri, 26 Apr 2024 10:44:05 GMT</pubDate>
            <atom:updated>2024-04-26T10:44:05.720Z</atom:updated>
        </item>
    </channel>
</rss>