
Release notes: loved when witty and honest; hated when it's your turn to write them.
Release notes: loved when witty and honest; hated when it’s your turn to write them. Recently, as I wrapped up a quality-of-life update for one of my apps, I once...

How Clean Code Silently Corrupts Your Git History (And How to Fix It)
I’ve been blamed for code I’ve never even seen.1 All I did was format the entire repo one long time ago and now I’m getting blamed for everything…2 While Git...

The Feature That Took Years (and One Rainy Monday) to Build
You know those features that haunt the back of your mind? The ones you want to build but can’t bring yourself to start on. For me, a big one was...

Have you been having a lot of headaches lately?
I’ve had migraines my whole life. My mom has them, and so does my grandmother. Mine aren’t as debilitating as others can be, but they knock me out well enough...

How to Write a Good Ticket (and Stay Sane Doing It)
Chasing Ghosts I recently encountered a crash in one of my apps that I couldn’t reproduce—it works perfectly on my machine, as we developers like to say. Trying to fix...

Meet My Source Code Analyzer
When I wrote my Ollama post a week ago, I promised to polish up and give away my File Analyzer Quick Action for free for Newsletter subscribers. We developers like...

More Fun with Ollama
Gitonium Update: Save on API Costs with Local LLMs After writing last week about the AI dilemma developers face, I decided to act on a feature request that’s been sitting...

Apple's Missed Opportunity: How the New AI Features Let Developers Down
Apple’s Missed Opportunity: How the New AI Features Let Developers Down As Apple prepares to launch iOS 18 and macOS 15 Sequoia next week, excitement is building around the new...

Welcome to My Echo Chamber
A while back, I felt tired of Twitter because it’s full of indie hacker influencers either bragging about their MRR or spewing advice on getting thousands of followers like they...

Push and Pull
As you may know, I make a git client for macOS. Its primary purpose is to make merges as easy as possible. Many users have been asking me to add...