Tag: Bias For Action

Over My Skis

Over My Skis

A few minutes ago I just published my first Go module. But here’s the thing: I don’t know Go. What madness is this?

Granted, I’ve been by myself most of this weekend, but in that time I’ve published 3 new public projects:

Plus, I have a fourth project in the works that’ll affect this blog materially. And I’ve built a sophisticated “AI Chief of Staff” for my own use (not published yet, but I will eventually in some form), and I’ve made a handful of smaller one-off utilities. And I’ve started spec-ing out a major project. And I’ve matured my local Claude Code configuration and spruced up my dotfiles. And, and, and.

It’s absolutely bonkers the throughput coding agents enable. Knee of the curve indeed.

No Seriously, Don’t Stop

No Seriously, Don’t Stop

I’m starting to feel a compulsion to keep as many Claude Code terminals running as I possibly can. Ready for lunch? Try to kick off a large implementation. Bathroom break needed? Run a research project in parallel. Bedtime? Don’t you dare until you have your swarm of agent teams configured with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS and everything allowed thanks to --dangerously-skip-permissions.

Time to git add --all && git commit -m "yolo" && git push -f up in this business!

And is it time to graduate to Gas Town? I’m already using beads to good effect, and I’ve now reached Stage 6 on the Steve’s Evolution of the Developer chart.

Can’t Stop Won’t Stop

Can’t Stop Won’t Stop

Yup, it’s another post about Claude (and I don’t think it’ll be my last).

Yesterday I had a need to share an extensive discussion I had in the Claude desktop app with a person who isn’t (yet) an AI user. I didn’t want to share the conversation with a public link (even if an obscure one). So I built a tool that takes a Claude export archive and turns it into a navigable website. From there I simply printed the relevant conversation to PDF and sent that via email. Easy peasy.

And by “I built” I obviously mean I asked Claude Code to do it. Took less than an hour of wall clock time, only about 10 minutes of it requiring my active attention. The result is now on GitHub for your enjoyment. Amount of code I hand-wrote: zero. That includes the documentation.

There were other solutions out there, but I thought it’d take no more time just to build a tool to my exact specifications. And I was right. That was a revelation. The times they are a changin’, fellow software nerds. What I first mentioned as a far off possibility back in 2017 seems now a reality.

Let’s Reason Together

Let’s Reason Together

For the past few weeks I’ve made considerable gains in learning AI-related tools. Not through some formal training process, but by just doing it. I guess it’s good to heed my own advice?

Professional learning needn’t be solely focused on seemingly professional stuff, either. Part of what helped free the mental logjam of diving deep was allowing myself to use AI for fun stuff, such as creative writing. Going through that process has revealed both the power and limitations of LLMs; experiences I’ll be able to carry forward into professional use cases.

One pretty clear lesson is that, past a certain size, projects need to have some degree of structure, lest context get lost in a sea of tokens. Another lesson is that motivation for learning often comes when working on a project together with others.

To support the above, as an aid for creative writers using AI, I created this story framework repository. It contains all the scaffolding required to keep track of large creative writing projects, along with instructions to a number of AI tools on how to use it. And since it’s based on git and plain text files with markdown, it naturally supports group collaboration through branching, pull requests, and commit history.

Want to try your hand at AI-assisted storytelling? Give it a try!

Calling Me To Shine

Calling Me To Shine

When the topic recently came up about scheduling a weekly team sync call, to the chagrin of a few colleagues, I suggested 7am PT on Mondays. Given how most of my work is tied to Eastern and Central time, I’ve become accustomed to waking up early. Even on weekends (I’m writing this on a Saturday and I was up about 6:30, for example).

I get that it doesn’t work for everyone, but for me, early mornings are ideal. They also make an excellent subject for a song (this one’s been a favorite of mine since 2006):

Paved Paradise

Paved Paradise

One of the things I tried to do when I was a manager at AWS was connect members of my team to the broader internal community. Generally I found that, when asked, most folks were willing to jump on a call and share their wisdom and perspective from a different portion of the company.

In a particularly memorable such conversation, I’d invited Becky Weiss to present at one of my team meetings. I won’t forget something she shared that day: her love for a particular AWS service, what it enabled for experimentation and learning, and how unique an opportunity it was to have it available to us, because it was internal only (a fact Corey Quinn has bemoaned).

I took it for granted at the time, which was a mistake. Sure could benefit from it now.

Patience Isn’t A Virtue

Patience Isn’t A Virtue

I’ve had space on the brain recently, having in the last month visited both the Jet Propulsion Laboratory and the Johnson Space Center. There’s a paradox of sorts when thinking about interstellar travel called the wait calculation (or, in simpler form, the wait/walk dilemma). The gist is that we should not launch a slow spacecraft now because one sent later with a faster propulsion system would simply overtake it. Repeat that argument ad infinitum, and you’ll never launch, hence the paradox.

These days I’m feeling caught in a similar sort of trap when it comes to learning about AI, with announcements almost daily (just this week, GPT-5 launched, right on the heels of the release of a bunch of open weight models that can run all sorts of places, including Amazon Bedrock). Just when I think I’ve identified the technology I want to really embrace, new ones arrive that create new capabilities, deprecate old ones, and demand rethinking workflows. It’s disorienting.

You know what isn’t disorienting? Photos of cool command centers. Here’s three of them from my recent travels:

The room where it happened
The room where it’s been happening a while
The room where it’s still happening

I’m a sucker for a good command center, that’s for sure. But enough distractions; I know I just need to dig into deeper AI learning. That’s the trick: just start.

Like Riding A Bike

Like Riding A Bike

Yesterday I re-passed the AWS Certified Solutions Architect – Professional exam. It’s my third time taking it (2019, 2022, and now 2025). I went into it cold turkey, absolutely zero preparation, and while my score wasn’t as good as before, a pass is a pass.

I guess at this point, I’ve done enough work in AWS that the knowledge is pretty much permanently ingrained. It reminded me of this article on Buying Moves:

There’s an amazing quirk of the human body that makes fitness adaptations work a bit like powerups in a video game. You can spend some resource to add capabilities to your “character,” and if you do it right they’re always available to you (for the most part). I’m talking about muscle memory and our ability to “lock in” physical skills.

Perhaps there’s a mental version of the same phenomena?

Speaking of that link, being one myself, I’m a big fan of True Generalist. While it isn’t for everyone (and that’s okay), I can’t disagree with his take on competencies that every person should have, and further skills that generalists need to function effectively. Both worth a read if you’re this type of person.

Old Dog, New Tricks

Old Dog, New Tricks

Over two years ago I bought a few domains with the intent of building a tool for keeping track of card game scores. Like many of the best laid plans, I didn’t get around to doing so. Until now.

With the advent of GenAI and “vibe coding” I figured there was no longer any excuse. I spun up Lovable and started prompting. The results? Not bad. Not bad at all. With maybe a dozen prompts and half an hour, you can see the results at onlinescoresheet.net. What was most impressive for me is that I was able to simply ask the model to do Pinochle scoring, and it was able to understand what that meant and implement it without me explaining the rules.

What’s up next? I’d like to generalize the scoring system to be configurable, or at the least add explicit support for a few more game types. I’d also like to dig into the source code to evaluate quality. Should be fun!