The Craft / 00
Notes From
The Practice.
My personal writing on AI-assisted engineering, software, and the ideas behind what we build — published on Medium.
I asked AI to replace me. It almost did.
A human sitting at a desk, while an AI-generated digital version of the same person is sitting in his chair doing the work. I wanted to know how much of my job was actually me. Not the title, not the years I spent…
Read article →AI Is Getting Better at Everything. So What Happens to Us?
We spent centuries building machines to make our lives easier. What happens when the machines start thinking for us? For most of human history, we’ve been trying to solve the same problem: how can I do this with less…
Read article →
UI protection not equal system correctness
Let me show you something that will ruin your confidence in every form you’ve ever shipped. Open your browser. Open any React form you’ve built with the standard pattern isSubmitting state, disabled={isSubmitting} on…
Read article →
The bug took two days to find. The fix was one line. But we are solving the wrong problem
Let me tell you about a bug that took me two full days to find at a company I worked at. A user on an internal support panel would click between two tickets quickly, ticket A, then ticket B, before ticket A finished…
Read article →
The Two Hooks That Separate Junior from Senior React Developers
It’s not about knowing the API. It’s about knowing when your component needs to think differently. There’s a specific moment in a code review that tells me everything I need to know about where a developer is in their…
Read article →
React Hooks in 2026: Not Just What They Do — When to Reach for Each One
Every hook is a solution to a specific problem. The senior developer’s skill isn’t knowing the API — it’s knowing the problem. Let me tell you the moment I knew I’d finally understood React Hooks. It was 2019; I was…
Read article →
I Let GitHub Copilot Define My React Standards for Six Months. Here’s the Damage It Did.
AI doesn’t invent bad code. It invents averageness — confidently, quickly, and at scale. There’s a specific kind of technical debt that doesn’t show up in your linter. It’s not a bug. It’s not a performance issue. It’s…
Read article →
Why Every Link You Share Shows Your Homepage Logo
Picture this. Someone finds your product. They’re excited. They share it on LinkedIn. The preview that appears: your site’s generic homepage logo, the default title “My App — Build Something Great,” and a description…
Read article →
The best place to hide a dead body is the second page of Google search results
In 2026, Google CAN render your SPA. The question is WHEN “Google renders JavaScript” is true. Here’s the part they don’t tell you: Google renders JavaScript in two waves . And the gap between those waves is where your…
Read article →
Dark Mode Isn’t a Feature. It’s a Promise. Here’s How to Keep It.
Every flash of white on a dark-mode screen is your app saying: “I wasn’t listening.” Let’s fix that. “Good design is invisible.” — Dieter Rams There’s a specific kind of frustration that lives in the gap between what a…
Read article →