The Addictive Trap: AI, Context Windows, and the Art of Building
The strangest thing about this new wave of AI is that it brings up an age-old dilemma I've wrestled with many times. I'm arrested by the potential. It's filled my head like an idling turbine—capable of work, waiting on me to give it direction.
If AI were slower, I could hand it work and wake up the next morning to see what it had done. But it's so fast that every step opens up more steps. The feedback loops are impossibly high-resolution, impossibly addictive. I get stuck in these time warps where I build, I wait for it to finish, I try it out, and the cycle pulls me deeper. It's like a literal time warp where I'm busy building, I do a step, the AI finishes immediately, I try it out, and then I'm compelled to do the next thing. Those feedback loops are so tight and so rewarding that I get caught in them.
And I'm starting to realise something: the only thing blocking me is me. I'm not thinking big enough. I'm catching myself in these tasks—fine-tuning this or rolling out that or adding this feature, making this deployable—and I'm realising those are things that an LLM can figure out. I don't need to sit there and cajole it into doing that work, but I am doing that. And that's the problem. I have to reflect on the way I explain work and ask for things to be done, because I need to be asking higher-order questions. I need to think in a more elevated way about my context window, about what's my state of the world and the progress through a thing.
But it's not always clear cut. Often the process of building is also a process of discovery. And there's a trap there, I feel like one. It feels like this: you build something according to your idea of it—let me call the idea A. You build A, and then when you get to A, you realise, oh actually no, it's more like B. But what you've done is built A and all the things around A. You've got the core, you've got the tools, you've got the extra interfaces, and so on and so on. Then to shift from A to B becomes a very big exercise. Big is relative, but contextually, because the LLM now needs to update A as well as all the auxiliary parts, it can consume context really fast.
I hit this with the game system I'm building. The core got refactored. It was this arbitrary game, but then I pivoted it toward being a multiplayer game called Scorched Earth—it's like a battle game where players bomb each other, quite fun actually, an old school game. But I'd already built the CLI tooling, I'd already built the API, I'd already built simulation bots, and all of those had to get refactored too.
What was missing in the beginning? Probably not enough depth on the design. The process of unpacking the design needs to be a loop in itself. It can't just be a one-shot prompt, even in plan mode. There's a flow here, and I'm also bumping up against the context window anxiety yet again. If the context window were ten times bigger, it wouldn't matter that I changed direction because the whole context could get assimilated, pivoted, and adjusted. But really, the context window anxiety is real, and every time I think about making changes, I think about whether this change is too big for the context window.
There's this thing called agent swarms where the main agent I'm talking to can delegate to sub-agents and they run in their own context window, which is nice. But getting it to do that requires explicit prompting, and there's coordination. Not everything can be parallelised and run asynchronously—some things do block. Those feel like systemic problems that I shouldn't have to worry about when I'm working in an intent-based way.
The changes require me to shake off the abstraction and sink down a layer to make sure I can continue living in the abstraction one layer above. But that's like the boat captain being the engine room mechanic. It doesn't make sense, but it's also the nature of systems. Abstractions aren't ever watertight. I do have real constraints I have to deal with, and I think that's the nuance of being a good builder: understanding that I work in layers and that I have to work between the layers softly, gently, and carefully to get the result I want. That's where the artistry comes in—how I understand the layer and how I work with the abstraction. There's a symbiosis there, really. They can work together so long as I respect both and understand both, because after all, every system has limits.
But what a wild journey. It's filled my whole head up, and I think about nothing else. I've got to be careful of that, and I've got to stop thinking that unused potential is a loss. It really isn't. That's sunk cost fantasy. That's the same as me saying I could be delivering pizzas right now, my car is parked in the garage earning me money while I'm sleeping. It's silly. I've just got to keep going and get better at using the tools. That's the main thing.
But what an amazing time to be alive. It's taken me back to childhood, when I first opened the GW BASIC manual and read through all the commands. Especially the beep command, which could make a sound at a particular frequency. I made music with that. Just wild. Wild, wild, wild.