This article expands on my OpenSouthCode 2026 talk.
I have a slightly awkward question for anyone who collects code coverage in CI:
Are you testing the same binary that you ship?
For many projects, the honest answer is no.
Traditional coverage starts at compil…
Every time I give a talk on design, someone finds me afterward. They wait out the handshakes and the business cards, and then they ask a version of the same question. How do I make THEM do things the RIGHT WAY?Not as funny as the original, but you get my point…
The whole payments backend module, which I specifically told him to work together with me (I do frontend), was vibe-coded by him in one single day.
How ni...
One awesome product evolution is that agents (Claude Code, Instinct, Poke, etc) are moving off our local computers so that we can use them on our phones.
Ultimately this is great for the customer because that means the agent companies provide us with VMs for t…
I loved a 2009 game called Artificial Life. It simulated real-time evolution of protozoa. I took a crack at rebuilding a modern, in-browser version based on that experience. The new version feature…
Two problems I kept hitting once I started running Claude Code in loops: a looping skill re-reads the same files every tick, and CLAUDE.md is advisory so the model ignores it whenever the harness says otherwise. I wrote a small Rust binary for each.
I don’t want less food. I want healthier food that doesn’t spike my blood sugar or leave me feeling awful afterward. I want food that tastes good and makes me feel good.
Important Note: Although I work at Apple in the password management and app/website authentication spaces, in this post I am speaking only for myself, personally. There is no “news” in this post or any kind of “inside scoop”. Please do share this post, but if …
– an owl mid flight I saw last summer. try drawing it.
“You should have failed this class. I’m going to make accommodations so that no student can pass next semester the same way you did.”
This is what my Ancient History II professor told me when my group and…
Porting a laptop agent into a cloud sandbox drops context and fails as one unit. The fix is to decouple the session store, agent loop, and execution layer.
“I didn’t think a full, six-day-per-week, fourteen-hour-per-day, in-office schedule was necessary to discharge my duties clicking the ‘generate’ button, foll...
UPSes are typically the most boring part of your homelab, but they're important. One of their main jobs is to give servers time to shut down safely if the power goes out. Another job is to condition your power so your servers can run smoothly.
To do both of th…
LibreOffice 26.8 became the app’s most popular update, with over 1 million downloads, after the foundation behind it declared that LibreOffice doesn’t come with generative AI features due to the…
Send a text from your phone and kick off an AI workflow without opening your laptop.
In this video, I connect sent.dm to Cloudflare’s Agentic Inbox so an incoming message triggers a webhook, parses a tag, runs an AI content workflow, and saves the result to N…
I found an old interview I did with a friend in 2017. It's been 10 years, and I still keep the same beliefs. I was born to be a software engineer, and a writer.
Automated AI text detection is currently an underserved niche. The only game in town is Pangram, which does an excellent job but desperately needs more…