Gen AI, LLMs, etc.

I was in curmudgeon mode for the early phases of the LLM wave, perhaps because I subconsciously didn’t want them to be good at anything. But I’m using them more and more now.

What I don’t use it for

Writing prose

This blog, emails, etc. I’m no great writer, but I’ve always taken pride in at least trying to be a good one. I also care about writing in my own voice. I don’t want AI to whitewash it away.

Love this quote from Dave Eggers, found via Sylvia:

This is the first time in history when a whole generation is being told or tempted to have a machine write for them. You are one of one, unprecedented in the history of human evolution. There’s only one of you. So to give your voice to a machine to say speak for me, I’m going to be silent, and I’m going to tell a machine to express myself or to tell my narrative, is such a crime against yourself. It’s so dystopian, beyond anything I could do in a dystopian novel, and I did a lot.

That said, if I’m at work and I just have to crap out a blurb to satisfy some silly demand that I really don’t care about, I may use an LLM to write most of it. But in general I try to ensure my voice comes through in any writing with my name on it. Again, no great writer here, but at least I’m contributing some humanness to the rapidly machine-driven workscape.

What I do use it for

Writing code and configs

Not quite vibe coding, as I still enjoy the process of writing software rather than merely dealing in “outcomes.” But, like so many others have observed, LLMs let me chase and complete a lot of coding ideas that I’d otherwise never start due to lack of time.

For example, I handcrafted a link checker in Python. It checks all my internal links in this blog to make sure they’re valid. For Reasons™, I wanted to convert it to Golang. But my Golang chops are rusty, and this probably would’ve taken me a full day’s worth of hours to accomplish, researching along the way to rediscover how to do all the things idiomatically. With an LLM, I did it in a handful minutes. If I were content to vibe code and didn’t bother to read through the code, it would’ve been more like one minute. That’s pretty wild.

Similarly, LLMs are great at banging out software config. For example, systemd unit files. I’ve spent a lot of time fumbling with those in the past. Now, with an LLM’s help, I can get them correct and working in just a few minutes. Another good example is Terraform files. Super helpful.

Exploring how to do things on a computer

Before I get to the doing — writing the code, etc. — what are the good ways to do go about it? Here are example questions from my recent LLM chat history:

Validating my assumptions

Take this blog, for example. There are lots of times when I’m in the process of asserting some words, and I realize I don’t actually know the truth of the matter as well as I thought I did. (This is why I love writing in public. It holds me accountable.)

LLMs are handy for validating thoughts as I go.

Exploring how to do things with a human

I do this mostly at work, where I’m a people manager. People managers have to deal with tricky issues: having hard conversations, managing up, documenting low performance, resolving conflict, firing people, etc. We also have to make sure we’re doing the important positive stuff: celebrating and rewarding high performance, helping our people along in their careers, fostering community, etc.

LLMs are great for bouncing ideas around. In most cases, they can quickly summarize the zeitgeist around a specific managerial challenge. And oftentimes they help generate new ideas for how to move forward.

Sometimes they’re no more than a rubber duck for management: merely explaining a problem is helpful in understanding the path forward, even if the LLM’s advice is useless.