The future belongs to people who can just do things

The Haskell Experiment: Jeff's 'Oh Fuck' Moment with AI

Jeff opens by drawing a parallel between software engineering's current transformation and how the architecture profession changed after CAD tools arrived. He shares his catalyst: an engineering director's Christmas break challenge that led him to try Windsurf, prompting an experiment converting a Rust audio library to Haskell—leaving the loop running while he took his kids swimming, then returning to find a fully functioning, automatically-tested Haskell library with FFI bindings. This jaw-dropping result became his first 'oh fuck' blog post.

Questioning the IDE and the Multiboxing Revelation

Jeff shares his blog post conclusion that engineers who haven't explored AI assistance 'frankly are not gonna make it,' then questions whether the IDE itself is the right interface for AI—calling it a typewriter unchanged since Turbo Pascal in 1983. He introduces the 'multiboxing' concept of running multiple concurrent AI agents instead of one, references influential figures like Annie Betts (now at Anthropic) as a signal the field is genuinely changing, and frames the profession as at an adapt-or-perish crossroads.

Industry Mandates, Canva Layoffs, and Introducing AMP

Jeff covers Shopify's company-wide AI mandate and Canva's technical writing team layoffs as evidence of how fast AI is reshaping the workforce. He introduces himself as Canva's former AI dev productivity tech lead, now joining Sourcegraph to build next-gen AI tools. Jeff then introduces AMP—a command-line and VS Code tool his new team has just launched—and begins the FruitCo performance cycle story to set up an allegory for how AI adoption plays out across an engineering organisation.

The People Stages of AI Adoption: From Skeptic to Operator

Jeff maps out the emotional and professional journey of AI adoption through the FruitCo performance cycle allegory, identifying himself as 'Pineapple'—the skeptic who dismissed AI as hype after one poor early experience. He shows how engineers who invest early compound their advantage while skeptics like Grape slide down the performance rankings simply because their AI-assisted peers are delivering a force multiplier of output. The segment visualises the adoption curve as an S-shaped journey with a difficult, scary emotional trough in the middle.

The 2025 Skill Rift and What Engineering Leaders Must Do

Jeff concludes that natural attrition—not mass layoffs—will separate engineers who invest in AI from those who don't, comparing AI fluency to cloud knowledge for DevOps as a new baseline expectation. He warns engineering leaders that adoption is emotionally circular, not a simple directive, and that the support mechanisms they build will determine whether their teams cross the cliff or stay stuck as deer in the headlights. He also flags a retention risk: the tech industry is booming, and engineers who learn these skills will be in high demand.

The Overton Window and a Live AMP Demo

Jeff applies the Overton window concept to AI tooling, noting that vendors are shipping AI into IDEs because it's 'susceptible and non-scary,' but the window is shifting—Dario Modeï recently declared the IDE dead, validating Jeff's earlier position. Jeff then launches a live AMP demo, prompting it to run git cleanup and pull commands across multiple repository folders using up to 500 sub-agents, demonstrating how the tool infers intent and autonomously generates a sequential task plan.

Future Org Charts, AI Managers, and Building Your Own Agent

While the AMP demo runs, Jeff explores what future organisational charts might look like—including AI managers that automatically course-correct coding agents when they go off track. He argues that building a personal agent is the most important professional development activity for 2025, requires only around 500 lines of code and a few key primitives, and warns engineers not to treat AI vendors as magic-bean sellers but to understand the simple loop-and-primitives architecture underneath. He connects this to a shift already underway in technical interviews, noting Canva has publicly restructured its hiring process to assess AI-native capability.

Interview Disruption and Choosing the Right LLM for the Job

Jeff shows a video demonstrating how candidates now use AI tools to bypass coding challenge platforms, declaring that traditional pre-filter interview gates have been blown open. He argues the best way to assess genuine AI skill is to watch someone work with an LLM live, and explains that skilled operators know which model suits which task: Grok for offensive security research (no safety constraints), Gemini for large-document summarisation (massive context window and reinforcement-learned precision), and Anthropic's models for automated software development (exceptional at incremental tool calls).

AI as Musical Instrument: Deliberate Practice and the COBOL Emoji Calculator

Jeff addresses the common complaint that 'AI doesn't work for me,' arguing it reflects a failure of deliberate intentional practice rather than a technology limitation. Using the analogy of learning a musical instrument, he illustrates the spirit of play through a story: over Zoom margaritas, he and a friend built a reverse Polish notation calculator in COBOL—then escalated to using emojis as arithmetic operators just to find out if COBOL even supports them (it does). Jeff urges engineers to approach AI with a beginner's curiosity, because the people getting the most out of it are those who keep experimenting.

Headless Agents, the Gen Z Compiler, and the Comic Sans Extension

Jeff scales from the COBOL toy to serious autonomous systems: four concurrent headless agents running without human supervision, including one cloning TailScale's codebase and another building a compiler for a new programming language whose keywords are Gen Z slang—trained with no prior data on the language itself. He then live-demos an AMP prompt building a Chrome extension that forces Comic Sans onto every website, created in the spirit of play at the speaker dinner the night before. Jeff notes AI is 'exceptionally good' at browser extensions and uses the demo to illustrate how powerful beginner-mindset experimentation can be.

The AI Development Workflow: Specs, Standard Library, and Back Pressure

Jeff explains the three-stage workflow behind his autonomous compiler and other headless projects. First, load the LLM context through extended conversations before generating any code. Second, produce PRD-style specs from those conversations to define the full product requirements. Third, maintain a 'standard library' of technical prompting rules—for example, always use Svelte 5 not 4—that program consistent LLM output. Back pressure from build return codes and test coverage then automatically corrects the generational loop, and Jeff argues that companies with high test coverage will find AI adoption significantly easier.

IP Cloning Risks, Context Window Hygiene, and Async Sub-Agents

Jeff raises a sobering implication of these techniques: LLMs can be fed source code or product documentation to generate specs, effectively enabling any team to clone a competitor—what he calls 'driving LLMs like a Bitcoin mixer over intellectual property.' He then covers context window hygiene: create a fresh session per task and never try to rescue a derailed conversation. He introduces async future-based sub-agents—now a real primitive—that allow spawning parallel child agents to offload work and avoid blowing the main context window stack, comparing it to async/await with automatic garbage collection.

Closing Reflections: Ideas as Execution, Trust Inversion, and the Developer Identity Crisis

Jeff closes with reflections on what these changes mean for the profession. He argues ideas are now execution—spoken to a computer, they become a prompt that builds itself—and that stories no longer start at 0% but at 50–70% complete. He warns that trust in software is inverted: verification now matters more than generation, and 'vibe coding' without full accountability is dangerous. Jeff identifies an identity crisis for developers whose specialisations (back-end Ruby, Emacs, Node) are being erased by AI, questions the future role of open source when teams can co-generate everything, and closes with a direct call to action: go do things, prove it to yourself, and avoid being asleep at the wheel.

Folks, thanks for joining. It's a Friday. This talk is gonna be a little bit intense, but there's an arc to it. There's a reason to it. The way I kinda look at it is software engineering is going for the same change that would happen in the architecture space. Right? We like, before we had AutoCAD, before we had CAD, we have we used to have rooms of architects doing.

And after the end of that, we still had architects, but it was just the professional was different. Their identities were changed. And we're going through a similar things, one of those right now. And I'd just like to thank the speakers who spoke today. Like, giving talks is hard. No matter how much you do it, it's always hard, but it gets easier. And if you're thinking of delivering a talk, please do.

It's one of the best things you can do. So let's kick this off. The future belongs to people who do things was a blog post I authored approximately six months ago. And as certain that I might seem in all these things, I don't know where this is going.

I do know things are changing, and I do know things are changing. What I'd like to say is we're in a oh, fuck moment of time. This was my first blog post that I posted back in December, and as I take you through the talk, you might actually have if you haven't had one of these already, you might actually have one as well.

And it started when an engineering director went to all the staff and principal engineers at Canva and says, hey, can you go deep with AI over the Christmas break? I'm like, okay, I tried it before. Wasn't that interesting. Wasn't that interesting. So I said, hey, downloaded Windsurf, and I said, yeah, can you convert this Rust audio library to Haskell using GHC twenty twenty four?

And use Hoogle to search for the right types and functions and include a comprehensive test suite using Hspec and QuickCheck. Now, it's really important when you make your changes, run a run a build after every code change. And yeah, you need to write tests, and do that automatically for me. Do that automatically for me, because I heard it was possible to run a loop to actually automate some of these things.

So I took my kids down to the local pool, left that loop running. When I came back, I had a fully functioning audio library in Haskell. Now that is stupid. That is so stupid. You're probably wondering why am I doing an audio library in Haskell? It's like the worst thing to be doing audio in. It's because I knew it was not trivial.

Right? I'm continually searching for proof that this is real and what it can and cannot do. If it was regurgitating the same Rust library back to me and regenerate it, I'm not that interested because it's not new. But here, we've got an audio library in Haskell for core for core audio and macOS, and it automatically generated the bindings to cross over the FFI, like, functional programming over to C, and it worked, and my jaw was on the ground.

So I offered this blog post, like, oh, fuck. And in that, it was I included it and said, from a period from now, software engineers who have not adopted or started exploring software assistance are frankly not gonna make it. Engineering organizations are now split between those who have had that moment and those who have not.

And in life, I've been somewhat fortunate to have dealt and seen exponential change. And a background in software development tooling, I started more writing. Started more writing. I could see things. I could see that we need better tools.

Like what we had today, even now, doesn't make sense for the primitives that now exist. And then I did a follow-up blog post, and my coworkers back in January thought I was mad, utterly, utterly mad. And I was saying, hey, wait a sec, wait a sec. Why are we designing things for humans?

Like, what is an IDE? Think about it. IDE is basically a typewriter. It's a single plane of glass that we just type into. Like, seems really weird that, like, the entire industry is putting all these AI tools in the IDE. It seems like it's kinda like it just doesn't seem right. It's like it's a high power tool in a low power interface, and this interface has been the same roughly since Turbo Pascal in 1983. Like, has AI invalidated the existence of IDEs?

So we're starting to think about along these lines. Like, what has changed? What is changing? What if we designed around AI tools first, humans second? And then I go a little bit deeper. I'm like, hey, why does an engineer only pick one story? Now in my youth, I used to play a World of Warcraft, and anyone who played World of Warcraft knows about multiboxing.

Multiboxing is where you have one computer and you play multiple characters at once. And I realized, wait a sec. Wait a sec. What happens if I have multiple versions of cursor open concurrently? What could why why are we only picking one story? Like, because they output so slowly. Why don't I like, why why is it the norm?

And it seemed, when I was speaking with coworkers, they were stuck thinking at a primitive level of what if I had an AI coworker? And they haven't yet got to the thought of, no, fam, what if you had a thousand AI coworkers that went ham on your entire backlog all at once? Now, that's Annie Betts. Annie Betts was my mentor when I was first getting into software engineering. A lot of the software you use day to day from Slack, the GitHub desktop app, or the entire Electron ecosystem, you've seen a software updater, that's Annie.

She's now at Anthropic. When certain people will caliber, say certain things, and they start doing particular things, I pay attention. There's two people I pay attention to. It's Annie Betts and Eric Meyer. And all of the biggest brains in computer science that were retired are coming out of retirement now.

There there's moves happening here. So I guess our profession is at a crossroads. It's kinda like an adapt or perish moment is the way I see it. And it didn't take long for founders to start putting out blog posts and tweets saying, I'm no longer hiring junior or mid level software engineers.

It won't be long until AI is writing all the code from Gumroad. Shopify followed up very fast and says, at Shopify, using AI effectively is no longer optional. It is a baseline expectation to be an employee at Shopify. Here is a quote from the AFR.

It turns out some divisions embrace this mandate for using AI a little bit too well. Last week, Canva told the majority of its technical writing team its services are no longer required. So folks, introductions. I'm Jeff. Previously, I was the AI AI dev productivity tech lead who rolled out AI at Canva.

But as of two weeks ago, I'm now joining Sourcegraph and I'm building next gen AI tools. And I figured, look, if I'm gonna be building these tools and it's gonna have these implications for society, I've got to throw some ladders down to explain what is going on. What is going on so you can adapt. So this is AMP.

This is a video that came out this morning and it's got not we're completely unrelated. The product is now three weeks old and it's being very very well received. And I'll I'll give you some showing of it, but basically, it's a very, very small team in a much bigger company that are building really good developer tools.

So on the note of, like, publishing research, it's all on my website. What I'll be doing is stitching it together today. This is a six month recap. As soon as I published the blog post that, hey, some people are not gonna make it, coworkers came to me and go, Jeff, what do you mean some people are not gonna make it?

And this is the blog post. At FruitCo, there are seven software developers, and the company does six month performance cycles. Right? This is a this is the same in every single company. It's easy to point blame to any one particular company, but AI can now be purchased with a credit card. So these dynamics will happen within a span of time.

Some companies, it will happen faster, but some might take years to happen. So unfortunately, Lemon doesn't make it in the performance cycle because they're all Lemon. Then, you know what, another performance cycle whizzes on by. Orange and Strawberry are really shocked because they're normally like a high performer. Like, they're really, really shocked to get a low performance rating. So they start looking for an edge.

Right? They start looking for an edge, and they they download Curse or Windsurf or any one of these things, and they start paying attention to it. Now, this is where it gets interesting. This is the journey that I personally went through and myself doing research within the organization, and I managed to map this out as the people stages of adoption.

That was me. I was pineapple. And I was like, prove it to me that this is real. I tried it. It was crap. Right? Didn't wasn't good enough. Now this is the curse, is you can be a principal engineer and you try it once, and then you can completely ignore that it's getting better continually.

You completely miss the point that it's getting better every month. It's getting better. The tool's getting better. The foundation models are getting better. And when you hear someone when you hear someone say, yay, it's really good, it's easy to dismiss it as hype. It's really easy to dismiss it as hype. I was that. I was dismissing it as hype.

So six months whizzes on by, and at the next performance cycle, pineapple and grape are at the bottom of the tier list. That's really weird. Why are they at the bottom of the tier list? They're previously at the top. It turns out because the other coworkers would be using AI, and it's able to deliver a force multiplier of output compared to what they were doing, naturally, they're being graded downwards when compared against their peers. So Banana is a little bit shocked, starts taking notice, and starts investing in themselves.

But the thing is, the earlier you start playing around with AI, the more it kinda compounds and because you're learning what it can and cannot do. So unfortunately, the results are predictable. Grape really failed to adopt with adopt with the changing within the engineering culture within a company.

It's no longer with the company. And this is the curve. This is what I was able to to map out. Grapes up there is like prove it to me that this is not hype. Prove it to me it's not hype. And then you you get like the I'm experimenting with AI. And the end result here is there's a there's a middle.

There's a bit of a middle there. You get stuck in the middle. You're like, oh, fuck. Do I have a job? Like, soon as you start playing and experimenting with AI and you realize what it can do, it's really scary. It's really, really scary. But there's a cliff that you can cross over, but the question is, how do you do you cross that, to go for that journey from like up where I was over into like, programming AI, not just consuming, but programming.

Programming with AI is gonna be a baseline expectation. Right now, you're consuming AI. There's gonna be a baseline expectation that you can use AI to automate your job. So I concluded that blog post that there's not gonna be a mass layoff for software developers at companies because of AI. What we'll see is a natural attrition between those who invest in themselves now and those who adopt, who do not.

The displacement that will happen is really coming down to whether you invest it in yourself and you're aware of it happening and the changing dynamics. You see, there's a bit of a there's a bit of a rift between 2024 and 2025, the skill set is has that founders want is changing.

They they in 2024, you can be a software engineer and you'd be a really good software engineer. But in 2025, founders are looking for software engineers that are AI native, that use AI to automate job functions within the company. It's kinda like imagine me a DevOps engineer in 2025 and not having any AWS or GCP cloud knowledge.

Like, it's one of those moments that rift is happening. So it's really important if you're an engineering leader to actually steer people past that emotional phase in the middle because you get stuck like deer in the headlights. So, so important. It's to build the support mechanisms, and you'll you'll see it in companies that are like, go play with AI.

Go play with AI. Just know eventually go play with AI is expectation of do more of AI. And for the people who actually get AI, it's also if you're an engineering leader, it's also the tech industry is popping right now.

Absolutely popping right right right now. So there's gonna be some retention issues. Like, so you want people to use AI, you and wanna have the right people in your company that are using AI, but at the same time, the tech industry is popping. If you figure out how to automate and do some of the things I'm talking about, like, it's probably some of the best personal development you do this year.

So for those that don't, don't invest in yourself. This is gonna be kinda dark. I remember when I posted and wrote some of this wrote some of the blog posts and doing some of the research that I was publishing, I remember getting off the train and just walking to the office and it was kinda like the movie The Sixth Sense.

And I was like, I see dead people, but they're not dead, like as in literally dead. It's like, oh, these people don't know they don't have jobs yet. Like, could see the displacement that's happening. So I wrote more. I started writing more and as I started doing more and more research, what I found was I originally thought if you you just you know, just go from the left to go to the right, and you're sweet, mate.

Nope. It turns out when you fight it's it's it it is an emotional struggle and roller coaster because the more that you see that AI can do, the more it throws you back into the center asking, will I have a job in the future? But you're like, oh god, I can do that. It throws you back. So if you're an engineering leader, it's really important to actually support your people through this motion.

It's not just a simple just adopt. No, it's gonna be a little bit circular. It's a big people change aspects for organization. Now, one of the things I was been looking at is the concept of Overton window.

In political theory, there's a way of mapping society through this, which is the policy for society. But they're also beautiful for essentially articulating disruptive innovation, the things that AI is happening right now. And the current thing we have right now, you see all the vendors, they're all, like, putting AI in the IDE.

You might notice it. Everything's in the IDE. But, like, five months ago, I'm like, no. The IDE. No. The IDE. It's not like, it's dead. And then last week, Dario from Anthropic is saying, yeah, the IDE is dead. So it's kinda like kinda validated. And the way I work with IDEs now myself, I just use it as a file explorer tool.

Like, I don't even use AI tab complete. I'll show you. And so all the vendors are shipping into the IDE because that is what is susceptible and non scary. That's the best way to look at it. Susceptible and non scary to people. But we're starting to get other approaches now where this is AMP.

It works both in Versus code and also in the command line primitive. It can be wrapped to do other things. And there's also Claude codes. We're starting to see the Overtur window slip a little bit. And this space changes fast. Like, I spent a lot of time pondering what is unthinkable?

What is so radical and unthinkable that it scares people? Because right now, even this here scares. What is the future? So I'm gonna show you how I do software development these days. Cool. Okay. So AMP is both a command line tool and an extension. Hey, can you please enumerate in each one of these folders?

In each one of these folders, run a git f d x clean and a git reset hard, then a git pull, and can you run a diff, like make sure all the folders are the same and use up to 500 sub agents? Yeah, so it turns out it was internet related problems. Cool, the transcript's done, let's kick it off.

So this is the way I do software development these days. It's gonna do inference and figure out what I want, and then it dries particular loops. So here we go. It's it's come up with a whole bunch of sequential to dos. It's enumerating for each one of the folders, and it's running those commands. So while that kicks off and runs, let's keep on going.

Something that I've been really thinking about is essentially what does a future organization chart look like? And this is really hard to say what a future organization chart will look like. It's probably not 2026. It might be 2026 for some companies, but for other companies, it could be ten, fifteen years. What you just saw is a baseline coding agent that that's essentially a general purpose thing that can do anything.

Now AI managers might seem a little bit weird, but, like, if you've ever been using cursor or any of these other tools, you see it do dumb stuff. Have you noticed that you're in there correcting it, and you're course correcting, etcetera? Well, you're software developers. What if you can automate? You could create a supervisor that automates that correction.

So the more times you automate when it goes off the track, the less you have to attend to it, it goes off, and that's AI managers. So AI managers are now real. They are now a real thing. And there's people on social media who are automating automating things with ClaudeCode and AMP and other things like that.

Now, probably one of the most important pieces of personal development you'll do this year is to build yourself an agent. It is literally 500 lines of code and a couple of key key concepts. Just go build yourself an agent. It is you can actually take this blog post, put dump it into cursor, amp, GitHub Copilot, and it'll build you the agent.

It will just grab the URL, etcetera. And understand that when all these vendors are going to market and they say, my new AI tool, the reason that everyone's doing it is because it's so simple. It's so, so simple. Learn what it is because we're in this this kind of this age of a little bit of, let's say, the bit of mysticism in that sense, and people are selling magic beans and, like, understand how it works under the hood.

That way, you know when someone says they've got a code review tool powered by AI, you just go, oh, it's just this loop with these three primitives with a different system prompt on top. Go build the agent because founders are gonna be wanting people who know how to build agents going forward. Now, that might seem a little bit cooked, but if I was to ask you what a linked list is, you should know, it's been a classic interview question.

It's been a classic classic interview question of a data structure is what a linked list is and how do you reverse it and etcetera. Going into 2025, we now we're starting to see the questions going is, what is an agent? Build me an agent. Show me. It's like into the details. The same way you would have a interview question for reversal link list. For reference, Canva three days ago has publicly shared that they've restructured the interviewing process, and we're gonna see start to see things like that. They want AI native people who can automate software development going forward. So there's a clear line.

This is gonna be something that's gonna be going forward, it's important to understand. And that's what I I'm starting to think that just because someone is an experienced software engineer doesn't mean they're necessarily an experienced software engineer going forward when you think about the dynamics of of employees share employees sell time sell time and skill for money, and then buyers' appetites change.

Buyers' appetites change, and it's changing fast in some companies really fast. And one thing I've been thinking about is LLMs are really kinda like mirrors of operator skill, and a lot of people try an LLM. They try AI, and it doesn't work for them.

But perhaps they're mirrors of operator skill. And one of the most pressing things going forward for companies as they're trying to find engineers who are AI AI native is how do you even identify if someone's really good with AI? How do you even identify if someone's really good with AI? The answer is you gotta watch them.

You have to watch them. Interviewing in companies has classically all been about classically been about a multistage filtering process. Multistage filtering process. But that multistage filtering process has been blown up. Here is a video of one of the many tools that's now available for candidates to use to actually cheat any of the hacker rank and leak code coding challenges.

Here, this engineer used it as university student, and yeah, he got acceptance offers in all the big tech companies using it. So the question of like how do we actually interview going forward, it's it's a huge, huge, huge problem. So I've been thinking about it, and I'm like, okay.

What would a phone screen look like going forward? Because with these gates blown up, how do you identify someone who knows what what it is? It turns out each one of these LLMs have been trained on different subsets of data, And some excel in some scenarios, and some are terrible in other scenarios. If you needed to do security research, which large language model would you use? It's Grok.

Grok has no safeties. If you're on red team and you wanna be doing offensive, like, offensive work, you can't do it with anthropic because the safeties of anthropic inhibit you from being able to protect your company. So that's an example, like a phone screen interview. Or if you needed to summarize a document, which LLM would you use? The answer is Gemini.

Gemini has this massive context window, and Gemini has, in peak Google engineering, there've been reinforcement learning to make it the magical one shot wizard that will summarize a document and get engineering perfection. That's so most people think about this along the lines of all these LLMs are the same.

Well, that's like cars aren't the same. You've got a 40 series. You've got a hatchback, and you've a soccer mom car. Like, they're all different. They all have different uses. And as you start playing with this, you start to notice, like, latent properties where they're good at. Gemini is not very good at automating software development. If you want to automate software development, you need a task runner that can do tool calls, and it turns out the one for that is actually Anthropic.

Anthropic is exceptional at incremental tool calls, and that it allows you to automate software development. And again, the best way to determine if someone is a skilled operator is just to watch them dance with the OLM. But that's expensive. You can't have all your product engineers, like, watching someone as they're working with the LLM.

The way to look at it is it's very similar if you're watching someone with a screen share if they're doing a debug challenge, and are they productive in debugging? Like, you you can pick, like, an experienced operator and skill if they write their tests, they do print statements, or, like, how do they step debug and work around it, that's a sign of someone who's, like, really invested in their skills.

And that's always been a great way to identify someone. The same play is now, but the idea of how do you do the pre filter gates, I've been thinking for three months, I don't have an answer. The gates have been blown open. Some companies are going back to in person interviews now. So one of the things I've been thinking about here is one of the things I've been thinking about here.

So the WiFi dropped out. Maybe this will be a one or two. Yep. So something I've been thinking about for a really long time is when someone says AI doesn't work for them, what do they even mean? What does that even mean when they say AI doesn't work for them? Like, are they which identity are they coming from?

Are they talking about AI is not working in the workforce, or are they talking about where they've tried it at home in a greenfield project? Right? Have they have they have they that distinction really matters because, I guess, employees trade skill and time for money. This is one of the biggest transformations that we're having in this space. And if they're missing out on it, on that skill up learning, then what does it mean for topics of employability?

So I'm really, really worried about these topics and what's going forward. If a company is struggling for AI adoption, that's understandable. That's my job job to figure out to make how to make these tools work well with large mono repos. But it's the employees I worry about. You see, I guess there was a time when employees moved on from companies because they wouldn't adopt cloud, AWS, etcetera, because they they saw the the the crisis for them for being employable into the future. So this is also a problem for companies itself as well for retention, etcetera, as more employees want to keep their skills up to date. If AI is not working in that company, then what does it mean for the company?

So I hope that employees are putting time in to remain relevant for future employees if they try AI at home. Because if you try AI at home without all the restrictions in the corporate code bases and large mono repos, there's a beauty in AI. It is absolutely beautiful.

Absolutely, absolutely beautiful. The way I like to describe it, it's like a musical instrument. Like, everyone knows what a guitar is, but with a guitar, you know you need to put deliberate intentional practice into it to get good at it. But for some reason, software engineers are picking up guitars, but I'm not talking about guitars here. I'm talking about AI.

And that they it doesn't work, and they just put it down and say, it doesn't work. That's really strange. Like, you wouldn't do that. It takes time, skill, and experimentation. Skill can be developed through deliberate intentional practice. In the in the circles around me, the people who are getting the most out of AI have been putting in this intentional practice.

And, yeah, they don't pick up the guitar, and they go they keep practicing. Now what does does practice mean? Like, I'm talking in the in these analogies of musical instruments, and what they do is play. They pick up something. They pick up something, and they go, can it do it?

Can it do it? So last week, I was hanging out with a friend on Zoom drinking margaritas, and we're both reminiscing, which led to a conversation about COBL. Next thing you know, we're like, can AI do COBL? Like, can it? I don't know. I don't know. Couple of moments later, we opened up a coding assistant and built a calculator in COBL.

And we're just sitting there going, what the hell? Wow. Okay. Because in the spirit of play, can it do a reverse polish notation calculator? And it turns out it can. It can do an RPM calculator in COBOL. And we said, what what what can it cannot do? Like, what what what's the stupidest thing we could possibly do with AI just for the spirit of play and fun?

And we're like, let's write some unit tests. Is there a unit test framework for COBOL? Yeah. There is. And it did it. And the next time we were like, oh gosh. Okay. Let's take this up on a level. We've had a few margaritas at this stage. And we're like, okay. Create a reverse polished notation calculator in COBOL, but use emojis as arithmetic operators. Does COBOL even support emojis?

We don't know. We're about to find out, And yeah, it is possible. COBOL supports emojis, and that's the world's first emoji calculator in COBOL. The thing I'd like to say, it is it is all about essentially just the deliberate intentional play and that experimentation of what it can and cannot do and learning new techniques and skills.

It is very weird. As engineers, we're used to, like, very deterministic outcomes, and these are nondeterministic primitives. It's gonna take a little bit of adjustment to get used to, but LLMs can be programmed. Now you might be thinking, hey, that's that's not interesting, Jeff.

That's not interesting. That's a toy. It's just like a Vercel application. Do you wanna see it go scale up? Here we go. Here is four headless agents that are automating software development. I'll get into it if I have time.

On the left there, that is myself cloning tilescale.com, the company, headless while I'm just sleeping. That there, the middle one there is HashiCorp Nomad. That's just Garrett open sourcing and that was a company called InfaScale. It turns out as you start learning different techniques, you can drive fully autonomous headless loops.

That's why I like to think of it as kinda like a musical instrument. I still don't know what is real and what is bullshit with everything that's going on, and I've continually published research and proven to myself what is real. I'm deliberately hitting the gym and doing things. And one of the projects I've been working on now is if I head across over here, is I'm like, okay.

Let's make a compiler. Can an AI make a compiler? Compilers are fantastic. They're fascinating. I never thought I'd be making a compiler. And this has been running on full autonomous headless loop, and we're now into the standard library concerns. Last night, it implemented the Postgres adapter and MySQL adapters, which will allow the programming language to do it.

And it's really weird because the it's actually programming a brand new programming language that it has no training data on. That's really strange. How is that even possible? I don't know. So over here, for citations yeah. Here we go. I didn't write any of this code.

It's implemented a generic algorithm. It's using a lookup table. It turns out if you give it a lookup table into the context window and you say this lexical structure is this in Golang, but this in Kursed, it's able to it's able to use it enough to tickle the leaded space to actually achieve those outcomes. It's crazy. It's absolutely crazy.

Now, this is the point where cool. That's working from the from before. Let me show another way of working with AI. Last night at speaker's dinner, speaker dinner and friends, we had a we're doing some fun stuff.

In the spirit of play, people ask me, what is play? So I'm like, okay, let's do it. Let's rebuild it. Because I I I built this before, so I know it's a possible thing that AI can do. Hey. Can you build me a Google Chrome extension?

This Google Chrome extension is called piss off all the designers in the world. And what it does is this Chrome extension, it allows someone to toggle a behavior on and off. That behavior is when it's enabled, it changes all the fonts on the web page to Comic Sans. Can you go build it, please? And it will go through and just build it.

And we're sitting there talking about fonts and typography and we're just and the topic of Comic Sans came up, and I was just, yeah, that's kind of fun. Just to show people that it is possible and what attentional play is that are approaching this from a from a beginner's mindset and play. Because we've essentially got a, like, a reset in time here.

So this is gonna build a Google browser extension that force overrides every website to be Comic Sans. For the basis of time, let's see how fast it takes. I might move on to the slides and come back to it, but it works. It works. For some reason, AI is very, very good at building browser extensions. Exceptionally good at building browser extensions.

I don't know. I really don't know. So Remember this organizational chart I was talking about? The idea of AI managers and automating things.

In that livestream and in the compiler, I've actually built my own supervisor and AI manager. And the idea is when I've noticed things go wrong with it, it automatically programmatically course corrects. So that's how I'm able to get this level of, like, headless automation of software development. The way you do it. The way you do it.

It's really simple. You have a long conversation with the LLM. Most people use the LLM and they ask you to do something. You should not do that. To build the compiler, what I what I did was I had a prompt. It's like, hey. I wanna build a brand new programming language. It's just like Golang, but I want you to replace all the lexical keywords to be along the lines of Gen Z slang.

Do not implement. Right? So and then I had continual discussions with it. Like, what approach do you wanna take for the Lexa and Paza? Like like, what are you what are you gonna do? Like and just kept loading up the context window of activities that I want to do. And then I said, okay. I want you to generate the specs.

And they are basically PRDs. And then you just dump out the product requirements of all the application, and then it would fan it out. From there, the next pattern to make this work is essentially a technical engineering practice, as I like to call it standard library. When we build AMP, we use Svelte five.

For some reason, Anthropic keeps bringing back Svelte four. So we've got the standard library prompts that essentially programming the LLM to say, stop giving us the old version. Give us five. As soon as we did that, it stopped giving us the old version. LLM outcomes could be programmed, and can be programmed and controlled. Really important. So you take these two concepts for generation.

One could bring your product requirements or what you wanna build. You take the other one over there for your standard library for technical patterns and practices, wanna use OTEL and what else have you, and it just works. So a lot of people, when they use cursor, they they they just accept the defaults and then they think it they think it's bad. They don't have the realization that you can program the outcomes.

You can control these outcomes. You can build lots of different prompting rules, save them, share with your coworkers, and all of a sudden, it's it becomes increasingly less wrong and customized for your company and code base. Now, another concept is really, really important. It's a topic of back pressure. Back pressure is really important.

So you've got the specs, you've got the standard library, which is the generation stage. Back pressure is really simple. It's your build result. It's the Unix return code or Windows like return code for a process. And you do the build. Did it work? Not work? And then if that didn't work, it puts back pressure on it. Same for tests. Companies that have large test coverage are gonna be find AI adoption much easier because they can put back pressure on the generational loop. If you wanna do code migrations between one version of.net to the next, you need to have test coverage that way you can put back pressure on the loop for the agent.

Now this one scares me. This one scares me. In the livestream in the livestream there, and I explained that, like, that's essentially took that approach. And what I did was you can actually drive LLMs like a Bitcoin mixer over intellectual property. You can feed it source code.

You can feed it product documentation if you don't have that source code, and then you can generate a spec from it. And now you got your spec, you have the ability to essentially at least clone a company. And that's gonna be really, really fascinating implications, what that means for society and founders. Like, what happens when the founder of Tailscal, like, they've just raised, think it's a $130,000,000 US.

What happens when their principal engineers leave that company and three or four of those best mates who actually know how to what to do, they run those type of loops. What does it mean for the unit dynamics for business when you can actually do that type of thing? That scares me. That really, really scares me. Now if you wanna get good outcomes for the LLM, one of thing you gotta do is remember this cut this is so important.

So so important. People do endless chat ops with the LLM. What they'll they'll go, okay. I wanna make this color of this button red. And then they'll go, oh, can you make me a butt a back end controller? Right? All within the same chat session. Don't do it. Keep creating more context windows.

Keep doing new chat sessions. Do it like every time you got a new activity. If it feels like the LLM's going off off track, I like to think if the bowling ball's the in gutter, don't try and rescue it. Just create a new context window. Because what happens is context windows are basically memory that can be mallet. You can assign memory or you can assign things into the context window, but it cannot be freed unless you create a brand new context window. So it's kinda like we're programming with C if we're talking into analogies.

You're allocating memory, but you can't deallocate it. But that changed. This was four days ago. About a month ago, I did blog posts talking about the notion. Wouldn't be really cool if we weren't programming in c, but instead, what we had was async futures and the way to essentially have automatic garbage collection. So a main, you have a process, and you have a thread, and that thread can create a a future.

And in that future, it could do, a build result, which is like big Vobos. If you only got a 154,000 tokens in the context window for allocation of memory, instead of allocating it to the main process thread, right, and then blowing up the stack, what if you can just create a future? And in that future, it can kick off other sub agents.

Basically, it's async a weight with garbage collection. It's now real. And what we've got here is it's each one of those things, you can spawn off one or more or many of these things, and it's a very powerful primitive. So some closing ponderoos. Removing waste from your company and system and process is gonna be a big accelerator than adopting AI.

A lot of the things need to be very, very real. It's a lot of things. It's process and systems that hold back a company. Or it could even be creating the right permission culture if you're an engineering leader to enable people to get stuff done. Ideas are everything now. Like, remember the old saying that, like, ideas are nothing, execution is everything? What does it mean when an idea can be spoken to a computer, and then it's a now prompt and it just goes and does it? Ideas are now important because ideas are now execution.

One thing's for sure, stories no longer start at 0%. They may and the agentic loops I'm running, there's holes in them. But I know what those holes are because I've been studying, and I see that repeatable where the holes are. So then I just program another agentic loop to patch those holes, right, that targets those particular use cases.

But one thing I definitely know for sure now, stories no longer start at 0%. They they they start at 50%, 60%, 70%. And then the last part, it's software assistance. It's not software software development replacement. And it comes into how do we even allocate work now? Why do we even have Jira?

In the team that was reporting to me at Canva, we brought in the spec based workflow to build some AI coding tools. And the end result was we needed to have in you know, the boundaries. Like, you do the back end. I'll do, like, the AI stuff, and you do do that over there. Because the way we allocate work normally is in really thin slices because work is normally somewhat slow, but it's allocated in a way so you don't step over yourself.

When you run these full loops, the end result is that you actually need to have operating boundaries because it's just so powerful. Stuff just gets done fast to the point where you're outputting work of multiple coworkers of, like, weeks of work. It's why do we even have Jira now?

I don't know. Trust in software has changed. Trust is inverted. So with the compiler, I chose because it's easy to verify if it works or not. It either compiles something or if it doesn't, and then you benchmark it against other programming languages. Easy. But like if you're running these full loops, you don't just ship it to production.

That's like this is the vibe coding. I hate this vibe coding notion. I want vibe engineering, like, where there's full accountability for what you build. It shouldn't be AI generated this. You should be able to explain exactly what happened. Because the way software has been built in the past is within with Lego blocks of trust that stack and compose upwards.

But that's changed now. Instead, now it's inverted. And verification of how it all works, You can do things, but it doesn't mean you should ship those things. Software engineers definitely have a job, but that job is now different. But software engineers are getting stuck because their identity function of what it means to be a sub software engineer is being erased by AI. AI is a an erasure device of people's identity.

Are you a back end developer, front end developer? Do you use Emacs? Do use VM, Ruby, Node? Doesn't matter. You're now just all software engineers. And if someone spent a long time, like twelve, fifteen years specializing being a back end Ruby developer, all of a sudden, anyone can be a Ruby developer. That's a emotional struggle to get through.

And now as one thing I've also been thinking about is what's the point of libraries? Libraries were designed for human, for reusable software, and, like, what is the point of open source now? The people around me who have been applying these techniques and if you use them, you might see that, like, dealing with open source is a real pain.

You gotta get the bug fixed. You raise that pull request. You gotta nag the maintainer, etcetera. Now we just co generate everything. It's really, really, really, really weird that something's changing here. Again, the the emperor has no clothes. All these AI vendors including us, we're all selling the same 500 lines of code in a while true loop, and you're throwing tokens onto it. Go build yourself an agent.

It's really important. And as I close this out, it's a really bad year to be asleep at the wheel if you're at a high performance, cutting edge company. These changes are not gonna affect everyone all at once, but at some companies, it's happening really fast. I'd really like you to just go forward and just do things, and just use these techniques, prove to yourself, go lift plates, send me an email. If it works, doesn't work, I wanna know because I still don't believe this is real, but it's at the same time, I'm pushing some things that just should not be possible and that it's working. It's weird.

Thank you.

The future belongs to people who do things

An ornate floral illustration frames a turbulent expanse of layered clouds.

We are in an “oh f..k” moment in time…

ghuntley.com/oh-fuck

“Hey can you go deep with AI over the Christmas break?”

A snowy cabin and decorated Christmas tree illustrate the holiday-break setting.

Convert this Rust library to a Haskell library using GHC2024.

A tool-filled wooden workshop represents the library-conversion task.

Use the Hoogle CLI to search for the right types and functions.

A tool-filled wooden workshop represents searching for the components needed to construct the library.

Include a comprehensive test suite using Hspec and QuickCheck.

A tool-filled wooden workshop represents assembling and testing the library.

Run a build after every code change.

A tool-filled wooden workshop represents the repeated build process.

Run tests after every successful build.

A tool-filled wooden workshop represents the automated build-and-test loop.

I took my kids down to the local pool…

A father and three children relax together in a swimming pool while the automated work continues elsewhere.

When I got back, I had a fully functional Haskell audio library…

A craftsperson surrounded by tools symbolizes the completed software library.

With autogenerated FFI bindings to macOS CoreAudio, and my jaw was on the ground…

A craftsperson surrounded by specialized tools symbolizes the unexpectedly sophisticated completed library.

So I authored a blog post…

ghuntley.com/oh-fuck

“N period on from now, software engineers who haven’t adopted or started exploring software assistants, are frankly not gonna make it. Engineering organizations right now are split between employees who have had that ‘oh fuck’ moment, are leaning into software assistants and those who have not”

ghuntley.com/oh-fuck

A tattooed person faces away toward turbulent, branching clouds, suggesting confrontation with rapid and uncertain change.

“We need better tools”

ghuntley.com/multi-boxing

“What if instead of being shackled to design inherited from Turbo Pascal in 1983—where IDEs are centered around humans—we had a fresh take: IDEs are designed around software assistants first, humans second?”

ghuntley.com/multi-boxing

“Why does an engineer pick only one story?

ghuntley.com/multi-boxing

“It seems developers are stuck thinking at a primitive level of ‘what if I had an AI coworker’ and haven’t yet got to the thought of”

ghuntley.com/multi-boxing

“No fam, what if you had 1000 AI coworkers that went ham on your entire issue backlog all at once

Anni Betts (Anthropic)

ghuntley.com/multi-boxing

A road divides at a junction beneath a looming cloud, illustrating the profession reaching a crossroads.

“I’m no longer hiring junior or even mid-level software engineers. It won’t be long until AI will be writing all the code for Gumroad”

Sahil Lavingia, Founder of Gumroad

“At Shopify, using AI effectively is no longer optional. It’s a baseline expectation for every employee, no matter their role. This is a major shift in how the company operates and thinks”

Tobias Lütke, CEO, Shopify

“It turns out some divisions embraced this mandate a little too well. Last week, Canva told the majority of its technical writing team on Friday that their services were no longer required”

AFR

Hi, I’m Geoff

An illustrated portrait shows Geoff as a bald, bearded man with tattoos and overalls.

Previously, the AI SWE productivity tech lead at Canva.

An illustrated portrait shows Geoff as a bald, bearded man with tattoos and overalls.

But as of two weeks ago, now at Sourcegraph building next-gen AI coding tools.

ampcode.com

An illustrated portrait shows Geoff as a bald, bearded man with tattoos and overalls.

Amp

A newly released AI coding tool ranked in the top tier of a developer-tool comparison.

A video sequence shows a tier list of AI coding tools. Amp appears in the S tier above Cursor, Charlie, Devin, OpenAI, Factory, Windsurf, and GitHub; the commentary characterizes Amp as ranking just below Claude Code.

I publish all my ponderoos and research for free at ghuntley.com.

An illustrated portrait of Geoff accompanies the link to his published research.

What do I mean by some people are “ngmi?”

ghuntley.com/ngmi

A row of seven fruit characters introduces the “FruitCo” example used to explain who is “not gonna make it.”

FruitCo developer ranking

A tier chart ranks seven fruit characters: apple in S, grapes in A, bananas and pineapple in B, orange and strawberry in C, and lemon in F.

Performance tier list

Apple is ranked S; grape is A; bananas and pineapple are B; orange and strawberry are C; and the F tier is empty.

“It’s not good enough. Prove to me that this isn’t hype”

Pineapple and grape stand on the edge of a deep valley, representing skepticism toward AI and the beginning of an adoption journey.

Performance tier list

Orange is ranked S; strawberry is A; bananas and apple are B; grape is C; and pineapple is F.

“It’s not good enough. Prove to me that this isn’t hype”

Pineapple and grape stand on the edge of a deep valley, representing skepticism toward AI and the beginning of an adoption journey.

Performance tier list

Orange is ranked S; strawberry is A; bananas and apple are B; grape is C; and pineapple is F.

Performance tier list

Orange and strawberry are ranked S; bananas are A; apple is B; grape is C; and the F tier is empty.

2024

“It’s not good enough. Prove to me that this isn’t hype”

“I’m experimenting with AI”

2025

“I’m using AI coding tools and it’s helping me do my job”

“I’m using AI to automate my job and programming managers of AI”

A valley separates skeptical and experimental AI users in 2024 from increasingly capable AI users in 2025, presenting adoption as a journey across a divide.

Performance tier list

Strawberry is ranked S; bananas and orange are A; apple is B; and the C and F tiers are empty.

2024

“It’s not good enough. Prove to me that this isn’t hype”

“I’m experimenting with AI”

2025

“I’m using AI coding tools and it’s helping me do my job”

“I’m using AI to automate my job and programming managers of AI”

A valley separates skeptical and experimental AI users in 2024 from increasingly capable AI users in 2025, mapping stages in the AI-adoption journey.

“I suspect there’s not going to be mass-layoffs for software developers at companies due to AI; instead, what we will see is a natural attrition between those who invest in themselves right now and those who do not.”

ghuntley.com/ngmi

2024

“It’s not good enough. Prove to me that this isn’t hype”

“I’m experimenting with AI”

“Oh f…, will I have a job in the future?”

2025

“I’m using coding AI tools and it’s helping me do my job”

“I’m using AI to automate my job and programming managers of AI”

A valley maps the emotional and practical journey from skepticism and experimentation in 2024, through fear about job security, to AI-assisted work and AI management in 2025.

2024

“It’s not good enough. Prove to me that this isn’t hype”

“I’m experimenting with AI”

“Oh f…, will I have a job in the future?”

2025

“I’m using AI coding tools and it’s helping me do my job”

“I’m using AI to automate my job and programming managers of AI”

A bridge now spans the valley between the 2024 and 2025 groups, representing a supported path from experimentation and anxiety to effective AI-assisted work.

Show me your number one spender and I’ll hire them

Imagine your CEO, CFO, and Head of Eng looking at a list of your company’s top AI coding agent users, and you’re at the very top in usage and spend.

Is that a good thing or bad thing at your company?

David Cramer, founder of Sentry.io

A social-media post frames high spending on AI coding agents as a strong hiring signal.

A dramatic illustration shows a red moon above turbulent waves, storm clouds and roses, signaling a darker turn in the discussion about people who do not invest in AI skills.

2024

“It’s not good enough. Prove to me that this isn’t hype”

“I’m experimenting with AI”

“Oh f…, will I have a job in the future?”

2025

“I’m using AI coding tools and it’s helping me do my job”

“I’m using AI to automate my job and programming managers of AI”

A bridge spans the adoption valley, while arrows point back from advanced AI use toward job anxiety. The journey is presented as an emotional cycle rather than a simple one-way progression.

An ornate open window surrounded by flowers introduces the concept of the Overton window.

Overton Window

ghuntley.com/overton

A political-acceptability spectrum runs in both directions through unthinkable, radical, acceptable, sensible, popular and policy. A narrow window encloses the central popular–policy–popular range.

AI must be in the IDE

Something else lies outside the current window.

ghuntley.com/overton

The Overton window encloses several AI coding-tool logos around the central acceptable range, showing that embedding AI in an IDE is the currently accepted approach while alternatives remain outside it.

AI must be in the IDE

Something else lies outside the current window.

ghuntley.com/overton

Most AI coding-tool logos remain inside the current Overton window, but two have moved just beyond its boundary, illustrating the gradual acceptance of approaches outside the IDE.

This slide is intentionally blank.

AMP repository-maintenance demo

The agent is asked to enumerate three repository folders, clean and reset each one, pull updates, and compare them:

git clean -fdx
git reset --hard
git pull

It creates a sequential task list, inventories the repositories, and begins the cleanup step.

A command-line AI agent converts a spoken natural-language request into a structured workflow: list the contents of repo-1, repo-2 and repo-3; clean them; reset them; pull updates; and compare them for equality. After an earlier timeout and restart, the agent successfully lists repository files, marks enumeration complete and advances to cleaning all repositories, demonstrating autonomous planning and execution.

This slide is intentionally blank.

The presentation is briefly visible in its slide-editing application rather than full-screen presentation mode.

This slide is intentionally blank.

FY2026 Organization Chart?

sourcegraph.com/blog/revenge-of-the-junior-developer

A speculative hierarchy places senior leaders above managers, then developers, followed by a layer of AI managers supervising AI coding agents.

What is an agent?

ampcode.com/how-to-build-an-agent

What is a Linked List?

2024

2025

What is an agent?

Show me…

Build me one…

ampcode.com/how-to-build-an-agent

“Someone can be highly experienced as a software engineer in 2024, but that does not mean they’re skilled as a software engineer in 2025, now that AI is here.”

ghuntley.com/mirrors

LLM outcomes are mirrors of operator skill

ghuntley.com/mirrors

An illustration of a woman facing her reflection in a flower-framed mirror reinforces the metaphor that an LLM reflects the capability of its operator.

An illustrated man and woman face one another in conversation beneath a storm cloud split by lightning, representing the idea that an LLM mirrors its operator’s skill.

Amazon University SDE INTERN Invitation to Interview

Amazon Student Programs invites the candidate to schedule a final, one-hour technical virtual interview.

Screenshot of an Amazon recruiting email sent after completion of an online assessment.

Congratulations on your Amazon Offer

The candidate is instructed to review the offer documents, submit a decision, and confirm a start date.

Screenshot of an Amazon University Talent Acquisition job-offer email, with identifying details obscured.

If you needed to do security research, which large language model (LLM) would you use? Why?

ghuntley.com/mirrors

An illustration of one woman whispering to another through a mirror accompanies the interview question.

If you needed to summarise a document, which LLM would you use? Why?

ghuntley.com/mirrors

An illustration of one woman whispering to another through a mirror accompanies the interview question.

If you need a task runner, which LLM would you use? Why?

ghuntley.com/mirrors

An illustration of one woman whispering to another through a mirror accompanies the interview question.
The best way to determine if someone is a skilled operator is to watch them dance with the LLM.
An interviewer watches a candidate work at a computer, illustrating direct observation of LLM-operating skill.
A solitary, tattooed craftsperson sits on a bench, suggesting practiced skill and experience.
A thoughtful, grey-haired craftsperson holds a hand to his mouth, representing reflection about skill, practice, and employability.
An electric guitar surrounded by flowers introduces the metaphor of AI as a musical instrument.
In the circles around me, the people who are getting the most out of AI have put in deliberate, intentional practice.
A flower-covered electric guitar reinforces the analogy between learning AI and practicing an instrument.
They don’t just pick up a guitar, experience failure, and then go, “Well, it got the answer wildly wrong,” and then move on and assume that that will be their repeated experience.
A flower-covered electric guitar reinforces the lesson that initial failure should lead to further practice.
What they do is play.

ghuntley.com/play

Last week, I was hanging out with a friend on Zoom, drinking margaritas, and we were both reminiscing, which led to a conversation about COBOL…

ghuntley.com/play

The next thing you know, we’re like, can AI program COBOL?

ghuntley.com/play

A couple of moments later, we opened a coding assistant and then built a calculator in COBOL…

ghuntley.com/play

And we’re just sitting there watching, just going, wow. So we then decided, hey, because in the spirit of play, can it do a Reverse Polish Notation calculator?

ghuntley.com/play

And it turns out it can

ghuntley.com/play

At this stage, our brains were just racing and we’re riffing. Like, what are the other possibilities of what AI can do?

ghuntley.com/play

What can it and can it not do?

So we asked it to write unit tests in COBOL, and it just did it.

ghuntley.com/play

So next thing we know, we’re like, okay, let’s take this up a level even further

Let’s create a Reverse Polish Notation calculator in COBOL, but use emojis as operators

ghuntley.com/play

Does COBOL support emojis?

ghuntley.com/play

Well, there’s one way to find out

ghuntley.com/play

It turns out that it is indeed possible, and COBOL does support emojis…

Emoji RPN Calculator

  • Modern emoji operators
  • Unicode support in COBOL
  • Full test coverage

ghuntley.com/play

A results panel shows the completed Reverse Polish Notation calculator, including stack-based evaluation, complex expressions, error handling, emoji operators, and passing test suites.
A muscular craftsperson lifts a heavily loaded barbell amid mechanical and floral imagery, representing deliberate exercise of new AI skills.
A craftsperson stands before a large audience as if presenting a demonstration, introducing the move from a playful experiment to work at greater scale.

Four headless AI agents; two complete, let’s do a verification loop

  • WireGuard Control Plane — “it’s done,” paused for verification and prompt creation
  • Infrastructure Orchestrator — verification loop underway
  • Gerrit — “it’s done,” paused for verification and prompt creation
  • PKI/IAM/CA — in build
A time-lapse dashboard demonstrates four autonomous software-development agents working in parallel. Two agents have declared completion and are held for independent verification, the infrastructure agent reviews documentation, source files, interfaces, tests, and repository status, and the PKI/IAM/CA agent continues implementing code. The sequence culminates with tests completing successfully while unfinished work remains active, illustrating scalable headless development with explicit verification loops rather than accepting an agent’s “done” claim.

Four headless AI agents; two complete, let’s do a verification loop

Two Claude agents and two Gemini agents verify autonomous Erlang/Elixir development.

A YouTube page shows the recorded multi-agent demonstration, with the video divided into WireGuard, Infrastructure Orchestrator, Gerrit, and PKI/IAM/CA workstreams.

Four headless AI agents; two complete, let’s do a verification loop

The PKI/IAM/CA agent is implementing an AWS provider while the other workstreams remain in verification states.

The YouTube demonstration shows four parallel agent workspaces: two completed streams awaiting verification, one verification loop underway, and one agent actively generating provider code.

cursed/examples/generics/algorithms.csd

sus pivot_index = data.size / 2
sus pivot = data.get(pivot_index).unwrap()

sus left = List<T>::new()
sus right = List<T>::new()
sus equal = List<T>::new()

bestie sus i = 0; i < data.size; i++ {
    sus item = data.get(i).unwrap()
    vibe_check (item.compare(sus pivot)) {
        mood Less => left.push(item),
        mood Equal => equal.push(item),
        mood Greater => right.push(item)
    }
}
A repository view shows part of a generic quicksort implementation in the new Cursed programming language. The code chooses a pivot, creates three generic lists, and partitions items according to whether they compare as less than, equal to, or greater than the pivot.

cursed/examples/generics/algorithms.csd

sus pivot_index = data.size / 2
sus pivot = data.get(pivot_index).unwrap()

sus left = List<T>::new()
sus right = List<T>::new()
sus equal = List<T>::new()

bestie sus i = 0; i < data.size; i++ {
    sus item = data.get(i).unwrap()
    vibe_check (item.compare(sus pivot)) {
        mood Less => left.push(item),
        mood Equal => equal.push(item),
        mood Greater => right.push(item)
    }
}
The same generated quicksort code remains on screen as an example of an LLM applying a supplied lexical mapping to write a generic algorithm in a programming language absent from its training data.

Repository cleanup task

  1. List the contents of repo-1, repo-2, and repo-3.
  2. Run git clean -fdx in all repositories.
  3. Run git reset --hard in all repositories.
  4. Run git pull in all repositories.
  5. Compare the repositories to ensure they are identical.

Result: git clean -fdx was rejected by the user.

A terminal-based agent proposes a destructive cleanup across three repositories and requests confirmation for each one. The user cancels the prompts, the command is rejected, and the agent shuts down without performing the cleanup. The presenter then creates an empty hello directory and opens it in an editor for a new demonstration.

Comic Sans font replacement extension

Build a Google Chrome extension that lets someone toggle a behavior on and off. When enabled, it changes all fonts on the webpage to Comic Sans.

The agent creates a Chrome extension manifest and begins implementing the content script that toggles the replacement font.

In an empty VS Code workspace, the presenter dictates a browser-extension request into the AMP agent. The agent interprets the request, creates a task list, adds manifest.json with a background service worker, and starts a content script that inserts or removes a Comic Sans style and responds to toggle and status messages.
An illustration shows a speaker addressing a densely gathered audience beside a table of burning candles, suggesting the sharing or demonstration of an idea.

Bet

FY2026 Organization Chart?

sourcegraph.com/blog/revenge-of-the-junior-developer

A hierarchy places senior leaders above managers, who oversee developers. Beneath the developers are three AI-manager roles, each supervising a group of AI coding agents.

Generate

Specs + stdlib

ghuntley.com/specs

A two-part generation model combines product specifications with a standard library of reusable prompting rules.

Instead of approaching AI from the angle of “implement xyz of code” you should instead be thinking of building out a “stdlib” (standard library) of prompting rules and then composing them together like Unix pipes.

ghuntley.com/stdlib

An illustration of interlocking software blocks reinforces the idea of assembling reusable prompting rules into larger workflows.

Generate / backpressure

Generate: specs + stdlib

Backpressure: build + test

ghuntley.com/specs

A circular workflow asks “how?” at its centre and connects specifications, a prompting standard library, building, and testing. Generation produces changes from specs and reusable rules; build and test results provide backpressure that guides the next iteration.

Software rewrites from one language to another are no longer an expensive thing for a company to do and if a “source available” company has provided the internet with their restricted source-code they can be cloned, automatically, whilst you watch Netflix.

ghuntley.com/z80

A retrocomputer emulator runs a text-based tax calculator beside the claim, illustrating automated migration of legacy software to another language or platform.

When data is malloc()’ed into the LLM’s context window, it cannot be free()’d unless you create a brand new context window.

ghuntley.com/gutter

A bowling ball and pins illustrate the context-window analogy: accumulated information remains in the active context until the entire context is replaced.

Parallel subtasks for post comment removal

Create four subtasks in parallel. Each agent removes comments: true from two posts; one agent also runs a custom command.

ampcode.com/agents-for-the-agent

An AMP demonstration turns one request into four concurrent subagent jobs covering posts 1–2, 3–4, 5–6, and 7–8. Each subagent searches for eligible posts and edits its assigned files, while the fourth also handles the custom command and encounters a permission prompt. The final overview reports completed file changes from the parallel workers, demonstrating isolated context windows and coordinated agent execution.

Closing Ponderoos…

Removing waste from your systems and process is bigger accelerator than AI

Ideas are everything now,
Ideas are now execution…

Stories no longer start at 0%

How do we even allocate work now?

Why do we even have JIRA?

Trust in software has changed.

Trust is now inverted.

Software engineers still have a job but the job is now different…

Erasure of identity functions

What is the point of libraries and open-source now?

The emperor has no clothes

How to build an agent

This year is a very bad year to be asleep at the wheel…

Go forward and

Do things

An illustrated, hooded and bearded figure reads from an open book, surrounded by fantastical creatures and swirling forms.

Links from presentation

Geoffrey Huntley

Six-month recap

An illustrated portrait identifies Geoffrey Huntley.

People

  • Annie Betts
  • Dario Amodei
  • Eric Meyer

Technologies & Tools

  • .NET
  • AMP
  • Claude Code
  • COBOL
  • Comic Sans
  • Cursor
  • Electron
  • Gemini
  • GHC
  • GitHub Copilot
  • Golang
  • Grok
  • HashiCorp Nomad
  • Haskell
  • Hoogle
  • Hspec
  • Jira
  • MySQL
  • OpenTelemetry
  • PostgreSQL
  • QuickCheck
  • Rust
  • Svelte 5
  • Turbo Pascal
  • VS Code
  • Windsurf

Concepts & Methods

  • Back pressure
  • Multiboxing
  • Overton window
  • Reverse Polish Notation
  • Vibe coding

Organisations & Products

  • Anthropic
  • Canva
  • GitHub
  • Gumroad
  • HackerRank
  • LeetCode
  • Shopify
  • Slack
  • Sourcegraph
  • Tailscale
  • World of Warcraft