A picture of me with my dog Tess next to me looking at me

Notes

We Need to Prepare for the Mammoth Task of De-Trumpification

You don’t just switch the lights back on for these things after Trump is gone and expect to find everything just as it was. From NIH, FDA, SAMHSA, CMS, and CDC, to NSF, NOAA, EPA, and NASA, the harm is so significant that massive amounts of resources will be needed just to bring us back to baseline, let alone prepare ourselves for the challenges of the 21st century and beyond.

Make America Scientific Again?

None of this is to say public health and scientific research in the US were perfect before Trump took power again. But that’s also the point: Recovering from the devastation gives us the chance to build the system we’ve needed for so long. Yet confronting the sheer scale of what needs to happen is the first step toward recovery.


Why We Fly

I am sympathetic to the view that space exploration is a luxury. I don't disagree, even. But NASA's budget is not the reason gas costs $6 a gallon, or why we don't have universal healthcare or pre-K. We don't have those because those in charge, and the people who voted for them, have chosen for us not to have those. It is a false binary that we even have to choose at all. The U.S. is the richest polity that has ever existed; there is more than enough money to go around to satisfy basic human services while still funding spaceflight. The people denying us those basic services would very much like for you to identify NASA as the culprit for its $24.4 billion budget, which represents 0.35 percent of all government spending, at the same time a pointless and purposeless war costs us a billion dollars a day, and the government seeks a $1.5 trillion defense budget.

And look at all of what NASA is able to accomplish with that little bit of the federal budget.

It was an extraordinarily human moment. Humanity feels a little more tangible when surrounded by nothing but machines and darkness; Wiseman's is a soft beating heart in a big black void that has carried everything, even its grief, farther than any heart has ever been. And now when he and his daughters look up to the Moon, he'll be able to point to Carroll Wiseman's memorial. When we explore, we bring our humanity with us, and leave it wherever we go.


The diminished art of coding

In some ways I feel like a carpenter whose job is now to write the blueprints for the IKEA factory. Of course there is still artistry in designing the blueprints, but you don’t care if the factory spits out one or two tables with splinters in the legs. The point is to produce enough furniture fast enough that the little imperfections don’t matter. Taste and judgment still count, but they’re at the level of the overseer on the assembly line, not the master carpenter working a chisel.

One worry I have for my entire generation of programmers is that many of us have been getting our artistic “fix” from coding: taking craftsmanship seriously, reviewing others’ code with the eye of a literary critic, trying to elevate the profession. Now the profession has been turned into an assembly line, and many of us are eagerly jumping into our new jobs as blueprint-designers without questioning what this will do to our souls. I believe art is necessary for a rich and full human life, so this isn’t an idle concern.


Food, Software, and Trade-offs

Everything has trade-offs, a set of attributes optimized and balanced towards a particular outcome.

You get X, but you lose Y.

Life is full of trade-offs. Anyone who says otherwise is trying to sell you something.


Comprehension Debt - the hidden cost of AI generated code

Unlike technical debt, which announces itself through mounting friction - slow builds, tangled dependencies, the creeping dread every time you touch that one module - comprehension debt breeds false confidence. The codebase looks clean. The tests are green. The reckoning arrives quietly, usually at the worst possible moment.

Margaret-Anne Storey’s describes a student team that hit this wall in week seven: they could no longer make simple changes without breaking something unexpected. The real problem wasn’t messy code. It was that no one on the team could explain why design decisions had been made or how different parts of the system were supposed to work together. The theory of the system had evaporated.

Knowing the code you are introducing to your codebase is so important. As soon as you offload that blindly to AI, the timebomb starts ticking.

I read one engineer say that the bottleneck has always been a competent developer understanding the project. AI doesn’t change that constraint. It creates the illusion you’ve escaped it.

And the inversion is sharper than it looks. When code was expensive to produce, senior engineers could review faster than junior engineers could write. AI flips this: a junior engineer can now generate code faster than a senior engineer can critically audit it. The rate-limiting factor that kept review meaningful has been removed. What used to be a quality gate is now a throughput problem.

The nightmare is when the AIs create such large PRs that make it so easy to miss wrong turns in code.

There’s also a specific failure mode worth naming. When an AI changes implementation behavior and updates hundreds of test cases to match the new behavior, the question shifts from “is this code correct?” to “were all those test changes necessary, and do I have enough coverage to catch what I’m not thinking about?” Tests cannot answer that question. Only comprehension can.

The tests pass...the code must work...right? Right?

You will pay for comprehension sooner or later. The debt accrues interest rapidly.


People are Not Friction

People, the context-bearers, have experience and capabilities that machines might never understand encoded in our muscles and memory. I’m on record saying I despise nuance –and I do– but it’s more important than ever to be able to connect to our fellow humans over this nuance so our world is not paved over by contextless opinions from ill-informed robots. Empower and believe people over machines.


Building the Good Web

Let me try to define the Good Web. The Good Web is any part of the internet built in good faith, which I mean in the specific, contractual sense. The maker is not optimizing against the user. No dark patterns. No retention schemes. No bloated scripts designed to keep you scrolling past the point of nourishment into the territory of compulsion. Nobody on a bbCode forum is selling your reading habits to an insurance company. The Good Web is not a technology, not a protocol, not even a community—though it contains all of those things. It's a disposition toward the person on the other end of the connection. It's the difference between a neighbour who bakes you bread and a supermarket that puts the bread at the back of the store because they know you'll buy chips on the way. Both are offering you something. Only one of them gives a shit whether you leave full.

More of this please.


I Am in an Abusive Relationship with the Technology Industry

You simply cannot breathe without seeing, hearing, or engaging in any kind of technical conversation about AI. AI has dominated the Zeitgeist so catastrophically that the only way to escape is to turn off the WiFi and delete all the apps. Every single piece of fucking software has some kind of shitty AI add-on, forced into your face at regular intervals whilst you’re trying to go about your life or do your job or check your email or write an email or read an email or talk to a human support agent or read a recipe or open an issue on an open-source project or watch a YouTube video or open your IDE or do a fucking internet search. The cognitive overload of AI trying to Make You More Productive™️ whilst you’re actually trying to be productive is so shockingly absurd. And yet, we are being made to feel like we are stagnating, being left behind, not good enough, that we are luddites should we not adopt this imposing technology. We are being told we’re missing out, even though we’re probably doing just fine. The technology is gaslighting us.

It's all opt-out (if you're lucky enough to be able to turn it off) too.

What’s even more personally terrifying: what if I need to find a new job in the near future? There are seemingly no non-generative-AI-centred options left for someone like me. I’m afraid that every opportunity will either be for a company building some kind of generative AI experience, or one that mandates the use of generative AI in your daily responsibilities, or one that refuses to use AI at the expense of their financial success and the stability of my employment. At this point I cannot escape. I am at the mercy of the profession I chose. I have a family to feed and a mortgage to pay. Retraining is not an option right now. I must force myself to adapt.


Mike and Karl Talk AI

This was a fantastic conversation bringing in a bunch of the nuance that is so often missed.


The Artisanal Web

No one was particularly optimizing for engagement or time-on-site or conversion. People made websites because they had something to say, or something to show, or just because they could. The web was weird and slow and full of bad tiled backgrounds, bad fonts and dumb ideas.

It was also weirdly, wildly, wonderfully human.

I almost feel like this is one benefit of Musk's takeover of Twitter/X. More people seem to have started building or resurrecting their own personal sites.

There are still people building the web by hand, very much like we did it in the early days. They know all about what's possible using modern tooling, yet they choose to expend their time and attention to the craft of doing it by hand. They care about the craft, and they care about what they're making. They believe in their unique skill and vision over engagement strategies and analytics and content algorithms. They don't need a platform, or they'll build their own.


Programming in the Swamp

But agentic coding is about more than moving upwards in abstraction. The compiler gave us abstraction without ambiguity. You wrote C, and it became assembly, deterministically. The layers were clean, and you remained a programmer in the traditional sense of how we’ve always understood the word.

What’s happening with agentic coding might better be captured by a term coined by Venkatesh Rao: “oozification.” Oozification, as Rao describes it, is the tendency of technological systems to evolve from structures built of large, rule-heavy building blocks to ones composed of smaller, more fluid, less constrained components.

Imagine, if you will, the difference between a man-made, plantation forest and a swamp. The forest has legible structure: tidy rows, canopy, understory, floor. The swamp is murkier, richer in evolutionary possibility, but also much harder to read. Oozification is the transformation of the forest into the swamp. The number of possibilities increases, while the number of certainties decreases, and that combination tends to make people downright nervous.

A natural language prompt doesn’t compile into code. Instead, it gets interpreted, completed and sometimes second-guessed by a probabilistic system. Intent blurs into elaboration and precise control gives way to fuzzy suggestion. It’s oozy and messy programming, and the role of the programmer blurs as well into something with unclear boundaries—part orchestrator, delegator, babysitter, designer, reviewer. People have always struggled to call software development honest-to-goodness “engineering,” and with the oozification of the practice, that highly-esteemed label has only become more ill-fitting.


Nobody Gets Promoted for Simplicity

Complexity looks smart. Not because it is, but because our systems are set up to reward it. And the incentive problem doesn’t start at promotion time. It starts before you even get the job.

I've learned so much over the years, and while it is always helpful to think about how features might be used in the future, it's even more helpful to know when to worry about it now, and when to leave it for later...if later ever comes.

The actual path to seniority isn’t learning more tools and patterns, but learning when not to use them. Anyone can add complexity. It takes experience and confidence to leave it out.


← Newer Notes Older Notes →