blog

The grief when AI writes most of the code


đź”— a linked post to blog.pragmaticengineer.com » — originally shared here on

I’m coming to terms with the high probability that AI will write most of my code which I ship to prod, going forward. It already does it faster, and with similar results to if I’d typed it out. For languages/frameworks I’m less familiar with, it does a better job than me.

It feels like something valuable is being taken away, and suddenly. It took a lot of effort to get good at coding and to learn how to write code that works, to read and understand complex code, and to debug and fix when code doesn’t work as it should.

It’s been a love-hate relationship, to be fair, based on the amount of focus needed to write complex code. Then there’s all the conflicts that time estimates caused: time passes differently when you’re locked in and working on a hard problem.

Now, all that looks like it will be history.

Early in my career, I helped start a company that conducted autonomous vehicle research. As increasingly complex driving tasks were able to be automated, I’d think about how this technology would one day render truck drivers useless. Which quickly turned into wondering when this tech would make me useless.

There’s no sitting still when it comes to software engineering. Every ten years or so, a new breakthrough comes along and requires folks to make a decision: do I evolve my engineering practice to stay up with the modern times, or do I double down on my current practice and focus on the fundamentals?

The choice comes down to what you value. Are you someone who enjoys artisanally crafting code, painstakingly optimizing each line to result in a beautiful tool? Are you someone who smashes things until they make the shape of a tool that helps someone accomplish a task?

When it comes to our economic structure, however, it doesn't matter what you value, it matters what someone is willing to pay you to solve their problem.

Some employers will value bespoke, artisanal ("clean") code, but I bet most will not care about what the code looks like. They will want whoever can quickly smash something into the shape of the tool that gets the job done.

As they say: don't hate the player, hate the game.

Continue to the full article


A Website To End All Websites


đź”— a linked post to henry.codes » — originally shared here on

This is a beautifully-designed thesis on why we should all go back to having personal websites, which is a topic I could go off on for days.

I hadn’t heard of Tools For Conviviality before, but I think I need to add that to my list:

In his book Tools For Conviviality, technology philosopher and social critic Ivan Illich identifies these two critical moments, the optimistic arrival & the deadening industrialization, as watersheds of technological advent. Tools are first created to enhance our capacities to spend our energy more freely and in turn spend our days more freely, but as their industrialization increases, their manipulation & usurpation of society increases in tow5.

Illich also describes the concept of radical monopoly, which is that point where a technological tool is so dominant that people are excluded from society unless they become its users. We saw this with the automobile, we saw it with the internet, and we even see it with social media.

Illich’s thesis allows us to reframe our adoption and use of the technologies in our life. We can map fairly directly most technological developments in the last 100 (or even 200) years to this framework: a net lift, followed by a push to extract value and subsequent insistence upon the technology’s ubiquity.

Continue to the full article


We're so back, baby!

originally shared here on

I made my first website when I was in third grade, and I've maintained some sort of web presence since that first version of Tim's World. Past experience shows that this website changes whenever I feel like my identity has changed, and this change is no different.

The first commit for this iteration of my website was on July 3, 2018. Since then, I've made almost no effort to maintain it. Prior to last week, this blog was running Ruby 2.7 and Rails 5.1 on an Ubuntu 16.04 LTS VPS with exactly zero unit test coverage. Every time I went to publish a change to the site, I had to SSH into the server, upload the file, then restart the server from the command line like an animal!

I had three goals in mind back in 2018: keep the design simple, produce as tiny of an environmental footprint as possible, and make it easy to share things that mean something to me.

Here in 2026, the goals are similar, but I feel more focused: I want to build a digital garden. A library for me to wander through, get lost, and discover.

It's a subtle distinction from how I use my site today. My home page shows me my favorite photo (where my family and I are getting slimed at Nickelodeon Resort) as well as a random quote that inspires me. I have functionality to track my exercise progress. I have a hidden section that shows me a "this day in Untappd history", allowing me to look back on the fun places I've been and the delicious beers I've consumed.

Turning my site into a digital garden will keep a lot of that functionality, but make a stronger emphasis on the tags that I've judiciously applied to every quote, blog post, and linked list item.

Each tagged item represents an opinion that meant something to me at one point, but there isn't much cohesiveness to them. Also, it sucks to read through them with this specific design because all of the content is shoved into a single, 600px wide column.

Realizing this dream requires several substantial changes under the hood, and my first glance at the engine made my stomach churn. My first instinct was to burn this site to the ground and make a totally new one. I even vibe coded a few new CMSes thinking I might want a static site builder or something similar.

But it turns out with AI, it is pretty straight forward to simply upgrade this site to modern versions of Rails and build on the foundation that's been here for nearly a decade.

One of the goals on my about page is to get good with computers again. I used to love sitting down and figuring out how to do stuff on my machine. With tools like Claude Code and Codex, it's easier than ever to get back to experiencing that feeling of success after I made the computer do something exactly the way that I want it to.

Over the winter break, I architected out a plan to incrementally upgrade my site through every version of Rails since 5.1. This started with getting my codebase covered 100% with unit tests, then methodically upgrading each plugin, framework, and antiquated approach to building Rails apps. I even transitioned my database from MySQL to Postgres, and I'm able to now deploy my site using Kamal.

It can't be understated how easy this was for me to do. If this were a year ago, it would have taken me weeks to do. With Codex, it took me under 10 hours from start to finish. If I didn't have AI tools to help, I would simply have burned the site to the ground and started from scratch.

Now that I have a fully up-to-date, modern Rails application powering this site, I'm ready to run all sorts of small-scale experiments on here. I've already made many quality-of-life improvements on here, including making my tags easier to browse. For example, check out the things I've tagged with 'joy'! All the way at the bottom is a post about Weird Al that I completely forgot about.

Anyway, I'm jazzed that my site is feeling fresh and fun again. My head is buzzing with possibilities for how to share the things I love and present it in a fun, cohesive manner. And now that I have everything in a good place from a technical perspective, I'm ready to experiment with the design and make it feel like "2026 Tim."


An Ode to the Old-School Internet Forum


đź”— a linked post to theringer.com » — originally shared here on

Do you know what I mean when I say “old-school internet forums”? I’m not talking about, like, 8chan. If your forum has been linked to even one mass shooting, it is not the kind of forum I’m talking about. I’m also not talking about subreddits, though Reddit appropriated and modernized the same basic structure, and I’m not talking about Discords, though Discord appropriated and modernized the same basic approach to community. I’m talking about a message board with its own unique domain name and a specific topical focus. Maybe that domain name is peppermintchat.org. Maybe that topical focus is peppermints. Peppermint Chat will have been founded by a single peppermint enthusiast, possibly called Stuart, in about 1998. It will have undergone precisely one redesign in the intervening 26 years, probably around 2007.

The users of peppermintchat.org will be the biggest group of hardcore freaks you can possibly imagine. They will be passionate. They will be scholarly. They will be deeply opinionated and wildly adventurous. And they will be each of these things exclusively about peppermints—nothing else. Their lives will revolve around the peppermint. (And also possibly their grandchildren, at least one of whom is named Peppermint.) They will use language like, “When I began my peppermint journey.” They will import rare and exotic peppermint cultivars from China. They will have contacts inside Brach’s and report breathlessly on minor tweaks to the candy cane formula ahead of what they call “the high season.” They will say things like, “I’ve probably spent upwards of $70,000 chasing that red-and-white-striped dragon.” Will their site load on mobile? It will not.

Within the larger body of Peppermint Chatters, there will be a smaller subset of elite posters, micro-celebrities of the peppermint kingdom. Their personalities, proclivities, states of residence, and even real names will be known to all who frequent the site. They will sometimes meet up in real life for peppermint-related activities, and in the world of the forum, these meetings will have the gravity and significance of the Yalta Conference. MintMan1 flew to Belarus to see PepperMinsk! The forum will be divided into many subforums, with the biggest fish spending most of their time in General Peppermint Talk and the most deranged individuals in human history congregating in Off-Topic Musings. Many threads, of course, will devolve into arguments, for such is human nature. Depending on how strictly the forum is moderated, these arguments will either end peacefully, with a broad acknowledgement that no type of peppermint is better than any other, because we are all on different peppermint journeys, which is why it’s so wonderful to have variety in the world; or they will end violently, with seven pages of posts in which Peppermint Chatters accuse one another of not “understanding basic logic.”

My childhood was spent on forums like this. I’m now itching to find myself a new one.

Continue to the full article


The Guilt of Feeling Joy


đź”— a linked post to nikitagill.substack.com » — originally shared here on

Being in a complete state of sadness for perpetuity because there is unhappiness in the world or because you are supposed to be grieving makes for a hopeless existence. And hopeless is not a state that helps you build anything. The act of resistance, true resistance comes from joy. Joy is necessary to keep movements going, the celebration of even the smallest of victories – you cannot build anything from apathy. Joy, compassion, kindness, love and hope all live in the same bright blue sky that is needed after and before storms. During the brutal, painful Partition of India, my grandfather held onto a book he loved and turned to it for fortitude. My grandmother dreamt of the roses she would grow one day. Joy is an act of revolution, it is what keeps us going in times of deep pain.

Still churning my way through a deep Instapaper backlog and came across this article that was posted shortly after the last presidential election. It feels prescient considering what's going down in my home state right now.

I find a lot of inspiration in the Mr. Rogers’ “look for the helpers” quote. I would add that it’s equally essential to look for the joy.

Continue to the full article


The Art of Protecting Your Peace


đź”— a linked post to time.com » — originally shared here on

How you care about issues that move you is what counts. Sometimes your lack of peace is a false economy. Recognize that your stress and anger isn’t changing anything around you; it’s only changing things within you. As you get angrier, more worried, more agitated, you become bothered. If you are always bothered, you are always angry, which will lead to you being stressed out and eventually getting sick, exhausted, and overwhelmed. And at that point of total burnout, you can’t make even a little difference anymore.

The reality is that you don’t have to be completely outraged and reactive to make a difference. In some cases, it can take that spark of outrage for you to realize how much you care and move into action. But once you do, put your hands on your heart or take deep breaths, get off social media or go for a walk (or all of the above), and remember the impact you can make without giving up all of your peace. The art of underreacting is to move from outrage to making a real difference while still taking care of ourselves.

Simply becoming aware of how vital our peace is to feeling good makes it easier to prioritize it.. When we aren’t aware, it’s harder to be gentle: We spend all our energy trying to change others or being unwilling to accept something that is happening (even though it’s happening whether we overreact or not).

Underreacting isn’t a sign of support for something you don’t support. It’s not faking your feelings. It’s how you move through something more gently. It’s how you decide how you want to respond. It’s how you protect and nourish yourself.

Generally good advice in here for, I don’t know, :gestures wildly at life:.

Continue to the full article


Uh Oh! The Infantilization of Failure


đź”— a linked post to joanwestenberg.com » — originally shared here on

When a friend says "oops" after spilling coffee, they're performing a specific social ritual. The diminutive acknowledges fault while signaling that the harm was minor and unintentional. "Oops" calibrates expectations downward: this is small, forgivable, already passing. The word does real work in human relationships. Corporate interfaces borrowed this vocabulary wholesale; and they understood exactly what they were doing. When an app says "Oops!" after failing to process your request, it's attempting to inhabit the friend-who-spilled-coffee role. But the app isn't your friend. The company behind it has a contractual relationship with you, often involving money, and the mismatch creates a specific irritation that's hard to articulate until you notice it.

I worked on an app for a billion dollar corporation. The initial designs called for “Oops!” to be the title of every error message.

I remember feeling uneasy about it, but I haven’t been able to articulate why until reading this article.

Continue to the full article


The Harvest Will Come


đź”— a linked post to joanwestenberg.com » — originally shared here on

I have been through winters before and I have always, eventually, found my way back to spring. The springs didn't come because I forced them or fixed myself or followed a twelve-step program. They came because seasons end. They came because the resting period did its hidden work. They came because, whether I knew it or not, I was gathering in the dark.

Continue to the full article


Bandcamp Friday Haul

originally shared here on

I've got two Bandcamp habits that I've adopted this past year which bring me so much joy that I wanted to share them here.

First, whenever I come across a pre-order for a band I love, I buy it right away. What happens is that I inevitably forget about it until I get the "your purchase is ready for download" email. It's like giving a gift to myself.

Second, whenever I come across an album I want to buy, I leave a reminder for it in a separate list on my reminders app. Once Bandcamp Friday comes along, I go through that list and buy them all.

It's an easy way to make sure these artists that I dig end up with a more reasonable share of the money they deserve.

Anyway, here's the gems I picked up yesterday:

Album cover for Parade by Work Wife

Work Wife – Parade

RIYL: alvvays, smart melodic indie pop

Album cover for Astray by Samiam

Samiam – Astray

RIYL: early 2000s melodic punk, emo

Album cover for Pequena Vertigem de Amor by Sessa

Sessa – Pequena Vertigem de Amor

RIYL: modern tropicália, samba-jazz, cosmic soul, brazilian indie (you probably haven't heard anything quite like this, it's dope)

Album cover for Dragonfly by Kupla

Kupla – Dragonfly

RIYL: emapea, lo-fi hip-hop, chillhop, downtempo, mellow beats

Album cover for Lofi Girl Christmas 2025 by Lofi Girl

Lofi Girl – Christmas 2025

RIYL: lo-fi hip-hop, ambient, chillhop, holiday-themed mellow beats


Coming home


đź”— a linked post to aworkinglibrary.com » — originally shared here on

And so I remain at an unresolvable juncture: the intersection of the very strong belief that we must experiment with new modes and systems of communication, and the certain knowledge that every time I so much as glance at anything shaped like a social feed, my brain smoothes out, the web of connections and ideas I’m weaving is washed away, and I tumble downstream, only to have to pick myself up and trudge heavily through the mud back to where I belong.

It’s exhausting. It is, at this point in my life, unsustainable. I cannot dip into the stream, even briefly, and also maintain the awareness and focus needed to do my own work, the work that is uniquely mine. I cannot wade through the water and still protect this fragile thing in my hands. And perhaps I owe to my continued senescence the knowledge that I do not have time for this anymore. Perhaps it’s age that grants the wisdom to know where my attention belongs and the discipline to be able to direct it. The great power of a middle-aged woman is that she knows where to give her fucks.

This is such a beautiful article, a great example of what it means to have a vision for your own life’s work and to go for it.

This website is a container that fit my needs around the COVID era, but now? I’m ready to start fresh. Dream big. Figure out what it is I want out of this site and start making it that way.

The same dreaming is also taking place in meat space. My wife gave me permission this week to build a new shed and a new mini office in our backyard. I get to spend all winter dreaming of what I want to see, and then I get to spend all spring / summer / fall making it a reality.

Perhaps related: I haven’t had a nightmare in months now. I’ve had a few bad dreams, but nothing close to the paralyzing terrors that met me nightly for around a decade straight.

Life’s good right now.

Continue to the full article