Skip to content (Press Enter to skip to main content)

Blog Posts

HiddenTabby

What I Learned Building a Chrome Extension

HiddenTabby promo image
HiddenTabby promo image

A browser extension might be the best first solo project to ship from beginning to end. I wish I realized this years ago. I've never tried to develop a browser extension before because there was never anything I needed. That is until I created HiddenTabby, a browser extension to manage your tabs.

Read more →

Photo by kiryl

The website building nephew is a bit of a meme, but I've noticed that some people treat AI in almost the same way.

My Nephew Built My Website

There is a phenomenon I first noticed years ago where The Boss was interested in a website or software project, but happened to chat with his nephew[^1]. It was always a nephew. Not a cousin. Not a brother-in-law. Not a hairdresser's boyfriend. Not even a niece. The nephew is almost always a hobbyist, rather than a professional.

It usually went like this:

"So I was talking to my nephew over the weekend. Smart kid and he's into computers. He says he could probably build this thing in a week using something called PHP."

I thought this was just something I noticed, but it's actually a well-known phenomenon. Just do an internet search for "nephew built my website". You'll find a few gems[^2]. Often the projects don't go so well, but there are a few smart nephews out there.

Read more →

Photo by Sigmund on Unsplash

In the age of AI, Apple's closed ecosystem might be costing them their biggest opportunity yet. What gives, Apple?

I've been developing software on a Mac for over 15 years and using an iPhone for a bit longer than that. From the beginning, I've found Apple devices to be great for productivity. For me, MacOS combined the familiarity of the Unix shell with a well-thought-out desktop environment. I didn't have to waste time configuring and fixing things like I did on Windows. Most things just worked. Over time, everything became better integrated between MacOS, iOS, and iPad. I grew to depend on the calendar, reminders, and contacts.

Lately, it just doesn't feel the same.

Read more →

Photo by Alexey Ruban on Unsplash-

In which I think about how we use agents, or maybe just reinvent webhooks.

I'm always looking to find ways to become more productive. It's helpful to discuss architectural concepts with a Large Language Model--great for when you don't have a coworker to toss ideas around with. A conversational approach seems best. (EG: "What if we made this service easily overridden in config?") A LLM is lacking in several ways compared to a real flesh-and-blood coworker. For one, they never initiate a conversation with you. Sure coworkers are annoying at times, but don't you want someone to let you know there's doughnuts in the kitchen?

How can we do that with LLMs? How can we have an external event trigger an agent's workflow? I've done a bit of searching and there doesn't seem to be an accepted solution. Certainly multiple people have come up with solutions, but I haven't found a name for it. Someone has to name it, so I'll take a shot: ATP, or Agent Trigger Protocol.

Read more →

Image credit: Chris Lawton on Unsplash

About four years ago, I moved this site from an aging Drupal installation to GatsbyJS. I was happy with the performance, but the whole thing did feel overly complex for a simple blog. Finally in 2025, I'm switching again to Astro. And I used the Cursor IDE to build the site.

Read more →