2026-03-21 03:00:00
Dave Rupert puts words to the feeling in the air: the unspoken promise of AI is that you can automate away all the tasks and people who stand in your way.
Sometimes I feel like there’s a palpable tension in the air as if we’re waiting to see whether AI will replace designers or engineers first. Designers empowered by AI might feel those pesky nay-saying, opinionated engineers aren’t needed anymore. Engineers empowered with AI might feel like AI creates designs that are good enough for most situations. Backend engineers feel like frontend engineering is a solved problem. Frontend engineers know scaffolding a CRUD app or an entire backend API is simple fodder for the agent. Meanwhile, management cackles in their leather chairs saying “Let them fight…”
It reminds me of something Paul Ford said:
The most brutal fact of life is that the discipline you love and care for is utterly irrelevant without the other disciplines that you tend to despise.
Ah yes, that age-old mindset where you believe your discipline is the only one that really matters.
Paradoxically, the promise of AI to every discipline is that it will help bypass the tedious-but-barely-necessary tasks (and people) of the other pesky disciplines.
AI whispers in our ears: “everyone else’s job is easy except yours”.
But people matter. They always have. Interacting with each other is the whole point!
I look forward to a future where, hopefully, decision makers realize: “Shit! The best products come from teams of people across various disciplines who know how to work with each other, instead of trying to obviate each other.”
2026-03-18 03:00:00
Imagine I’m the design leader at your org and I present the following guidelines I want us to adopt as a team for doing design work:
How do you think that conversation would go?
I can easily imagine a spirited debate where some folks disagree with any or all of my points, arguing that they should be struck as guidelines from our collective ethos of craft. Perhaps some are boring, or too opinionated, or too reliant on trends. There are lots of valid, defensible reasons.
I can easily see this discussion being an exercise in frustration, where we debate for hours and get nowhere — “I suppose we can all agree to disagree”.
And yet — thanks to a link to Codex’s front-end tool guidelines in Simon Willison’s article about how coding agents work — I see that these are exactly the kind of guidelines that are tucked away inside an LLM that’s generating output for many teams.
It’s like a Trojan Horse of craft: guidelines you might never agree to explicitly are guiding LLM outputs, which means you are agreeing to them implicitly.
It’s a good reminder about the opacity of the instructions baked in to generative tools.
We would debate an open set of guidelines for hours, but if there’re opaquely baked in to a tool without our knowledge does anybody even care?
When you offload your thinking, you might be on-loading someone else’s you’d never agree to — personally or collectively.
2026-03-16 03:00:00
Greg Knauss has my attention with a food analogy in his article “Lose Myself”:
A Ding Dong from a factory is not the same thing as a gâteau au chocolat et crème chantilly from a baker which is not the same thing as cramming chunks of chocolate and scoops of whipped cream directly into your mouth [...] The level of care, of personalization, of intimacy — both given and taken — changes its nature.
I love food and analogies, so let’s continue down that path. Take these three items for example:
Which one of these is the best?
I’m sure an immediate reaction comes to mind.
But wait, what do we mean by “best”?
Best in terms of convenience? Best in terms of flavor? Best in terms of healthiness? Best in terms of how ingredients were sourced and processed? Best in terms of price? Best in terms of…
It’s all trade-offs.
I don’t think we talk about trade-offs enough, but they’re there. Always there. We might not know what they are yet if we’re on the frontier, but we’re always trading one thing for another.
“McDonald’s cherry pie is the best cherry pie ever.”
That’s a hot take for social media. We wouldn’t accept that as a rational statement applicable to everyone everywhere all the time. People have preferences, products have strengths and weaknesses, that’s the name of the game.
“All software in a year will be written by robots.”
Also a hot take, not a serious statement. It’s impossible to apply such a generic prediction to everything everywhere all of the time. But also: “software” hand-written by humans is not the same as “software” generated by a machine. To presume the two are equivalent is a mistake. There are 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.
2026-03-09 03:00:00
I like pie.
And I’ve learned that if I want a pie done right, I gotta do it myself.
Somewhere along my pilgrimage to pie perfection, I began taking a photo of each bake — pic or it didn’t happen.
Despite all my rhetoric for “owning your own content”, I’ve hypocritically used Instagram to do the deed.
Which has inexorably lead me to this moment: I want an archive of all the pie pics I’ve snapped.
So I took the time to build and publish my best subdomain yet:
Programmatically, pulling pictures from Instagram used to be easy because they had APIs (access tokens expiring like every 60 days was annoying though). However, those APIs have been deprecated. Now if I want to pull data out of Instagram, I have to use their GUI export tools.

Once the archive is ready, they send me a link. I download the archive and open the .zip file which results in a collection of disparate JSON files representing data like comments, likes, messages, pictures, etc.

I don’t care about most of those files. I just want pictures and captions. So I crafted an Origami script that pulls all that data out of the archive and puts it into a single directory: pictures, named by date, with a feed.json file to enumerate all the photos and their captions.

At this point, I have an “archive” of all my data. This is what I stick on my CDN. (I'm hoping Instagram keeps the structure of this .zip consistent over time, that way I can update my archive every few months by just logging in, asking for a new export, and running my script.)
From here, I have a separate collection of files that uses this archive as the basis for making a webpage. I use Web Origami as my static site generator, which pulls the feed.json file from my CDN and turns all the data in that file into an HTML web page (and all the <img> tags reference the archive I put on my CDN).

That’s it! The code’s on GitHub if you want to take a peak, or check out the final product at pies.jim-nielsen.com
2026-03-04 03:00:00
The other day I was looking at the team billing section of an AI product. They had a widget labeled “Usage leaderboard”.
For whatever reason, that phrase at that moment made me pause and reflect — and led me here to this post.
It’s an interesting label. You could argue the widget doesn’t even need a label. You can look at it and understood at a glance: “This is a list of people sorted by their AI usage, greatest to least.”
But it has that label.
It could have a different label.
Imagine, for a moment, different names for this widget — each one conjuring different meanings for its purpose and use:
Usage leaderboard implies more usage is better. Who doesn’t want to be at or near the top of a leaderboard at work? If you’re not on the leaderboard, what’s that mean for your standing in the company? You better get to work! Calling it a leaderboard imbues the idea of usage with meaning — more is better! All of that accomplished solely via a name.
Usage dashboard seems more neutral. It’s not implying that usage is good or bad. It just is, and this is where you can track it.
Usage wall of shame sounds terrible! Who wants to be on the wall of shame? That would incentivize people to not have lots of usage. Again, all through the name of the thing!
It’s worth noting that individuals and companies are incentivized to choose words designed to shape our thinking and behavior in their interest. The company who makes the widget from my example is incentivized to call this a “Usage leaderboard” because more usage by us means more $$$ for them.
I’m not saying that is why they chose that name. There may not be any malicious or greedy intent behind the naming. Jim’s law is a variation on Hanlon’s razor:
Don’t attribute to intent that which can be explained by thoughtlessness.
I do find it fascinating how little thought we often give to the words we use when they can have a such a profound impact on shaping our own psychology, perception, and behavior. I mean, how many “word experts” are on your internal teams?
Personally, I know I could do better at choosing my words more thoughtfully.
2026-03-02 03:00:00
For my future self, these are a few of my notes from this book.
A take from one historian on the Luddite movement:
If workmen disliked certain machines, it was because of the use that they were being put, not because they were machines or because they were new
Can’t help but think of AI.
I don’t worry about AI becoming AGI and subjugating humanity.
I worry that it’s put to use consolidating power and wealth into the hands of a few at the expense of many.
The Luddites smashed things:
to destroy, specifically, ‘machinery hurtful to commonality’ — machinery that tore at the social fabric, unduly benefitting a singly party at the expense of the rest of the community.
Those who deploy automation can use it to erode the leverage and earning power of others, to capture for themselves the former earnings of a worker.
It’s no wonder CEOs are all about their employees using AI: it gives them the leverage.
Respect for the natural rights of humans has been displaced in favor of the unnatural rights of property.
Richard Arkwright was an entrepreneur in England.
His “innovation” wasn’t the technology for spinning yarn he invented (“pieced together from the inventions of others” would be a better wording), but rather the system of modern factory work he created for putting his machines to work.
Arkwright’s “main difficulty”, according to early business theorist Andrew Ure, did not “lie so much in the invention of a proper mechanism for drawing out and twisting cotton into a continuous thread, as in […] training human beings to renounce their desultory habits of work and to identify themselves with the unvarying regularity of the complex automaton.” This was his legacy […] for all his innovation, the secret sauce in his groundbreaking success was labor exploitation.
Not much has changed (which is kind of the point of the book).
The model for success is:
As the author says:
[Impose discipline and rigidity on workers, and adapt] them to the rhythms of the machine and the dictates of capital — not the other way around.