
Yesterday afternoon I found myself working on, among other things, the refactoring and enhancement of documentation in a collection of GitHub repos with an eye toward not just making their usage and philosophy clearer to human consumers of the modular DevSecOps functionality they provide but also enabling more effective application of agentic coding workflows to both their revision and usage.
I couldn’t help but notice the peculiarly early level of effort in this realm compared to previous toolchains I have built. Historically, when a code base existed at such a “wet clay” level of maturity, its usage limited to myself as I shape and polish it, such “documentation” has lived only in my head owing to its inherent volatility and there being nobody else as yet to benefit from it, but now in just the last couple of months the nature of software development has undergone yet another phase change.
For most of my career, any platform engineering work I attempted required a certain amount of “sales” effort, both to convince people to build atop it and to summon funding to assist in its construction, but now I am not just a principal-level engineer with subject matter expertise in a handful of areas but also one suddenly with the ability to summon infinite quasi-free co-workers whose competence increasingly proves indistinguishable from at least a mid-level engineer. And so, to maximally wield power over time, I find myself shipping not just the code of yore but also this weird new meta-code intended to capture workflows, doing so both more explicitly and much earlier.
I episodically attempted to make use of Claude Code throughout 2025 but kept throwing it out the window in frustration, this despite being an early integrator of LLMs into my development workflows generally. Around the turn of the year, however, the confluence of its maturity and the arrival of the Opus 4.5 model suddenly brought it over a critical threshold, and now it feels indispensable, transformative at a level beyond just affording me the direct leverage of an Iron Man Suit.
To get the most leverage from it, however, I must codify my design rationales and development workflows much earlier, lest I find myself having continually to re-explain myself to an agentic tool in every new session, a failing that would not only create duplicative work on my part but also shrink the “loop” in which the agent can act autonomously. And toward that end, I am encouraged not just to more explicitly document the why and the how of pursuing goals earlier in a system’s lifecycle, but also the what of validating theorized achievement of them, thus inducing the appearance of testing code of a certain rigor far earlier than I historically felt incentivized to do. I even find myself revisiting approaches around squeezing the marginal cost of standing up system copies toward zero as what previously felt like “nearly zero” for a handful of human developers increasingly now feels too great in a world where I may conjure swarms of digital devs.
I’m not sure how to feel about all this. On the one hand, my talents have never been more valuable, as AI has amplified my talents without (yet) subsuming them, but on the other hand I feel like I may have forever lost the permission to engage in a certain form of craftsmanship. I am still an extensive user of Emacs, the text editor I began using nearly thirty years ago, but now that usage has tilted heavily toward crafting plans, reading code, and reviewing changes, with actual editing becoming increasingly infrequent and surgical. With the passage of time the daily experience feels ever more like playing the game Factorio than laboring as an artisan lovingly crafting discrete artifacts.
This seems not great for generating the flow state I have regularly enjoyed throughout my career. Historically I have episodically left projects in part to abscond from the “team lead” modality so that I might recharge by savoring the pleasures of being an IC on a greenfield until once more I became a victim of my own success. Now it seems, as I lamented to an old friend on a phone call last night, I may forever be trapped nearly exclusively in the capacity of team lead and architect, roles that I enjoy and at which I excel, but not roles that I ever wanted to be my everything. I was, toward the end of my government days ten years ago, one of a number of people you could likely have counted on your fingers at my agency who still wrote code despite promotion to the executive grade, and so it is strange that in the end I find a technology finally coaxing me to change in a way that people never could.
Weirdly, the thing that nudged me to write this journal entry today was Ezra Klein’s podcast episode “We Didn’t Ask For This Internet”, which dropped today and featured Cory Doctorow (of “Enshittification” fame) as well as Tim Wu. They were addressing problems somewhat different than the topic of this essay and yet eerily reminiscent. In particular, when discussing how technological oppressiveness often first comes for those on the lowest rungs of the socioeconomic ladder but then inexorably works its way upwards, they touched on the example of cashiers, workers who have historically had highly personal and dynamic interactions with customers in serial fashion for transactions that lasted for a focused several minutes, but who have recently found themselves largely converted into parallel debugging machines wherein they supervise a bank of half a dozen self-checkout stations and only intervene if a computer shits itself. My reality isn’t nearly so oppressive as that but I do see the resemblance.
I am thus grateful also to have honed the craft of writing over decades. While AI has become involved in the process, it does so (at least for me) in a far more phase-segregated manner, buttressing the process sometimes with preliminary research assistance and usually with late-stage editing, but never folded into the messy and flow-state-producing “writing is thinking” critical phase wherein I wrestle alone both to ascertain the contents of my own brain and attempt to fashion them for the perusal of others. I even deliberately introduce friction into the final phase by religiously hand typing any changes to protect my voice and thinking.
Perhaps this explains in part why I have written much more in the past year than ever previously. Perhaps this explains why I avoid the self-checkout lanes and instead see if I can make a cashier laugh even though I know the bagger will likely trigger my OCD.
Related Reading
- Farewell To Punch Cards
- Waking Up To The Real Challenges Of AI
- The Perils Of Outsourced Thinking
- Agency, Accountability, Architecture, Autarky, Alignment
Discover more from All The Things
Subscribe to get the latest posts sent to your email.