-
Defending Your Node Modules: Security Tools and When to Rewrite Dependencies
This week I’ve been on a bit of a JavaScript kick; writing about why Vitest beats Jest, comparing package managers, diving into Svelte 5. But there’s one topic that we shouldn’t forget: security. node_modules is the black hole directory …
-
I don’t have a problem with .NET Core, but .NET Framework (ASP.NET Web Forms) is another story. UX and Anti-patterns abound. Can’t go directly to a link. Terrible SEO. Broken back button all over the place…. The __VIEWSTATE in particular …
-
Ditch Jest for Vitest: A Ready-Made Migration Prompt
If you’ve ever sat there watching Jest crawl through your TypeScript test suite, you know pain. I mean, I know your pain. When Switching to Vitest, and the speed difference is genuinely dramatic. The answers to why it’s slow are easy to …
-
JavaScript Package Managers: NPM, Yarn, PNPM, and Bun Compared
If you’ve been writing JavaScript for any length of time, you’ve probably had opinions about package managers. Everyone has used npm because it’s the default. Maybe you switched to Yarn back in 2016 and haven’t looked back. These days, …
-
Why Svelte 5 Wants `let` Instead of `const` (And Why Your Linter Is Confused)
If you’ve been working with Svelte 5 and a linter like Biome, you might have run into this sitauation: use const instead of let However, Svelte actually needs that let. Have you ever wondered why this is? Here is an attempt to explain it …
-
My current blog streak
🔥 Current streak: 42 days (started Jan 4) 🏆 Longest streak: 42 days 📝 Total posts: 42 (unique publishing days) 🎯 Year goal: 11.5% (42/365) I don’t think this means anything though. 🤔 Maybe people will care at some point? If I care, that’s …
-
What can you change in the next 42 days? career health growth The secret isn’t motivation. It’s just doing the thing, even when you don’t feel like it.
-
The BEST Ghostty version. Can we just like make a new semver so the 1.2.3 never changes. Our versions don’t make sense. Welcome to prompting 101. Make a new semver. Email me your book reports. Or post in the comments.
-
Don’t sleep on OpenClaw. There are a ton of people building with it right now who aren’t talking about it yet. The potential is real, and when those projects start surfacing, it’s going to turn heads. Sometimes the most exciting stuff …
-
REPL-Driven Development Is Back (Thanks to AI)
So you’ve heard of TDD. Maybe BDD. But have you heard of RDD? REPL-driven development. I think most programmers these days don’t work this way. The closest equivalent most people are familiar with is something like Python notebooks—Jupyter …
-
I usually brainstorm spec docs using Gemini or Claude, so if you are like me, this prompt is interesting insight into your software decisions. Based off our previous chats and the previous documents you've helped me with, provide a …
-
Here’s a tip: if you ask Claude (via an API not Code) to Vibe a typing hacker game make sure to tell it not to return valid exploits. I asked Claude to use actual Python code snippets in the game today and… GitHub’s security scanner was not …
-
Switching to mise for Local Dev Tool Management
I’ve been making some changes to how I configure my local development environment, and I wanted to share what I’ve decided on. Let me introduce to you, mise (pronounced “meez”), a tool for managing your programming language versions. Why …
-
Knowledge Without a Knower
How do we define knowledge in the age of AI? Can new knowledge even be created if we’re outsourcing our thinking to the models or the systems we built around the models? Let’s start with what knowledge actually is. Traditionally, to know …
-
How American Steel Disappeared
I was playing games with the boys and somehow we landed on the topic of US steel manufacturing. I got curious enough to dig deeper, so here’s what I learned about how the American steel industry transformed over the past 150 years. The …
-
The Broken Promise of Reach
AI is changing things we take for granted: the relationship between effort and reach. For years, the implicit promise of the internet was straightforward. Put in the work, create something valuable, and you’d find your audience. Maybe not …
-
Got a bit behind on the blog today, only getting one scheduled in time. I didn’t make my second slot for the day when I post these shorter ones. All caught up now thou. I’m trying to stay at least 3 days ahead. Tomorrow there is a lot to …
-
I kinda want to build more git/hub tools. I guess I have been trying to get to 20 repos that I am proud of. I certainly don’t all of them public. I am taking most of mine private or archiving. I should probably focus on like 5 or 1. Open …
-
First Impressions of OpenAI's Codex App
I’ve been experimenting with OpenAI’s new Codex app for engineering work that launched on February 2nd, and I’m not impressed. No subagents from what I can tell. It gets stuck on stuff that shouldn’t be blockers. The gpt-5.2-codex model …
-
Why IndiePub Matters More Than Ever
You might have heard the term IndiePub. It’s short for independent publishing—the practice of creating and distributing your work (books, stories, games, articles) without the financial backing or editorial control of a larger corporation. …
-
Why Data Modeling Matters When Building with AI
If you’ve started building software recently, especially if you’re leaning heavily on AI tools to help you code—here’s something that might not be obvious: data modeling matters more now than ever. AI is remarkably good at getting the local …
-
If you have an iPhone, turn on Advanced Data Protection. Without it, Apple can access your iCloud data and the government can access it with a warrant. What you may not realize is that if you message someone who doesn’t have ADP enabled, …
-
Hey, hello! 👋 If you don’t have a RealID-compliant drivers license yet, you’re going to need one for domestic travel. TSA now requires it as of February 1st, and showing up without one means paying $45 for “alternate” verification through …
-
JavaScript Still Doesn't Have Types (And That's Probably Fine)
Here’s the thing about JavaScript and types: it doesn’t have them, and it probably won’t any time soon. Back in 2022, there was a proposal to add TypeScript-like type syntax directly to JavaScript. The idea was being able to write type …
-
2026: The Year We Stop Blaming the Tools
Here’s a hard truth we’re going to have to face in 2026: sometimes the bottleneck isn’t the technology, it’s us. I’ve been thinking about how we use tools, how we find the merit in their use. We have access to increasingly powerful tools, …