A couple of weeks ago, I had the pleasure of attending the AI Engineer World’s Fair. I stepped off the subway and made my way up the stairs toward Moscone West, nervous and excited. Finally — a few days to devote my full attention to sorting the real innovation from the hype. And I came […] The post It’s Not…
#ai for developers
30 posts
26 Jul
24 Jul
A couple of months ago, I wrote about my client team’s decision to make human code review optional: an approval from an AI tool became all that was needed to merge. At the time, I said it was too early to tell. Now, enough time has passed to share some honest reflections. The Norms Didn’t […] The post Here’s What…
22 Jul
If you’ve been a developer for a while, you’re probably adopting AI one way or another. I still remember the early days when prompts never got me what I wanted. I figured it would be a while before AI took over my job. Within weeks, however, as the models improved and I got better at […] The post Grep Is…
20 Jul
On a recent project, I watched a team spend the better part of a week tracking down a single regression. The pipeline was a long-running simulation suite. Each test run took hours. There were dozens of commits to check, and the only way to check them was manually: run the sim, wait, evaluate the result, […] The post Here’s How…
11 Jul
For most of software’s history, the limit on what you could ship was your hands: how fast you could type, how much you could get built before the day ran out. Agents lifted that limit. A developer can now run several streams of work at once and get through more in an afternoon than used […] The post With AI…
8 Jul
I went into a recent project excited. The newer LLM tools had crossed a threshold for me. They felt like something I could finally lean on hard for a tricky visual-design problem: cross-domain research, concept generation, and prototyping all running in one loop. I was genuinely confident going in. And it delivered. The LLM helped […] The post Where the…
7 Jul
It’s three in the afternoon, and Claude Code asks me, for the 40th time today, whether it can run a command. I glance at it, hit Allow, and keep moving. I didn’t really read it. The thirty-ninth time, I didn’t read that one either. That reflex is the problem. Every permission prompt is supposed to […] The post Permission Fatigue…
2 Jul
My current software project had an issue, and, over time, it has become more of an issue as coding agents have gotten better. That problem is running parallel agents in our codebase while providing them strong methods to validate their work. The codebase was started in 2021. That’s before agentic coding was a thing, let […] The post Your Coding…
29 Jun
During the definition and planning phase of our current project, my team generated a lot of written specs. Seventeen feature specs, plus a PRD, a data model, and a handful of supporting reference docs. All of them are in Markdown, all living in the repo. That’s great for handing context back to an AI assistant, […] The post Tired of…
25 Jun
Frontier AI models today are incredibly powerful. They excel not just at writing bits of code but also at assisting with planning and architecture. They are also increasingly expensive. Early on in the AI era, developers had the luxury of tossing around tokens willy-nilly, delegating any task imaginable. Today, reality is starting to catch up. […] The post A Hybrid…
18 Jun
To lay things out on the table, this isn’t an “AI Bad, Humans Good” blog post. No-code tools have made it easier for non-developers to prototype basic apps, and coding agents have made it quicker for developers to get the first pass of a feature written. Agentic development hasn’t made writing human-maintainable code any easier. […] The post Write Human…
15 Jun
Agentic Android development works best when agents can build, install, run, test, and validate features against real devices or emulators without relying on Android Studio as the manual control center. In this article, “skills” means reusable agent instructions for a specific task, and “workflows” means separate working copies or environments where an agent can safely […] The post How to…
12 Jun
We’re in a time of accelerated innovation. Some say the AI bubble is going to pop, while some are betting everything on it being the future. As a participant in the development industry, sticking your head in the sand can be fatal. Yet, hopping on the hype train can seem intimidating or feel aimless at […] The post AI This,…
11 Jun
AI coding tools are getting wildly useful. They can scaffold features, explain code, write tests, refactor awkward functions, and sometimes make you feel like you suddenly hired a few extra developers who never sleep. That is exciting, and it really can change how fast teams move. But there is a trap hiding in all that […] The post Using AI…
31 May
We are producing more with AI. What we’re producing less of, apparently, is honest reflection on what that actually means. The internet is full of frameworks, prompt guides, and tutorials promising you’ll “10x your productivity overnight.” The question nobody seems to want to answer is whether any of it is actually good. Most of it […] The post Hard-Won Lessons…
27 May
Agentic development tools have started to change the way I approach software work. Instead of only asking for a small autocomplete suggestion or a quick explanation, I can now ask an agent to inspect a problem, propose a plan, make code changes, and even iterate on a solution. That can be incredibly useful, especially when […] The post How I…
18 May
Not everything needs to be AI-powered, even within an AI-first tool. I recently learned this while writing a Claude skill paired with the Claude in Chrome extension, and I got a lot more clarity on how to get the most out of these tools. Here’s what I learned. Writing My First Claude Skill I was […] The post Don’t AI…
15 May
One of the more noticeable changes with coding agents shows up when you sit down to pair with someone newer to the codebase for mentorship pair programming. On the surface, things can look like they’re going unusually well. Code appears quickly, the structure is reasonable, and there are fewer moments where someone gets stuck trying […] The post Thanks to…
14 May
I’ve been using Claude Code steadily for the last three-plus months. I wouldn’t call myself a power user, but I’ve settled into a rhythm that works: tight PR loops, lean on it for real feature work, push back when it wanders. Why I Finally Bothered with Claude Code Insights The tooling in this space moves […] The post What I…
12 May
Most agent setups are overbuilt. You can feel the framework wanting to happen before the problem is even clear. There is a planner, a runtime, a memory layer, a tool registry, a workflow engine, and a long explanation for why all of that is necessary. Then you look at the actual job, and it is […] The post Try This…
11 May
One might think computer vision models are supposed to be easy to put into production. There are whole companies built on that promise: label a few images, click train, click deploy, done. In practice, it’s messier. Most of us working with these models aren’t ML experts, and moving fast to keep up with the industry […] The post Lessons from…
7 May
Pair programming has always had a bit of a reputation problem. It’s easy to look at two people working on the same task and see inefficiency. More coordination, more talking, less obvious forward progress. Even on teams that value it, there’s usually some quiet pressure to just go knock something out instead. That tension has […] The post If You…
20 Apr
My client team recently updated its code review policy: an approval from an AI tool is now all that’s needed to merge. In this post, I’ll reflect on this change and what it means for the way our team works together. My Personal Relationship with Code Review Reviewing PRs is one of my very favorite […] The post Here’s What…
13 Apr
In a time of pressing adaptation to AI, it’s tempting to get to the result with fast prompts. But I’ve found that with some planning before prompting, I get better results that scale well. Here’s what I ask before I get started. What is the end goal? Am I solving a bug ticket? If it’s […] The post Questions to…
7 Apr
You might be familiar with this classic XKCD strip about SQL injection: What’s happening here? Imagine there is a form where a student can fill in their name, and this input gets incorporated into a SQL query. Something like: When the name is interpolated into that query, it becomes: SQL statements are separated by semicolons, […] The post Your AI…
24 Mar
This tutorial is for developers, designers who code, or anyone new to AI who wants a hands-on introduction to building a custom AI chatbot that can search and answer questions using your own data. I wanted to build an AI-powered tool for our team, but I had zero experience building AI applications—so I decided to […] The post How to…
18 Mar
All good nerds love a good dashboard, right? So when I saw people building Claude Code dashboards online, I wanted to learn from my own usage. The reason dashboards were having a moment online was that Claude Code has built-in OpenTelemetry support. That means you can pipe metrics and logs to any OTLP-compatible backend pretty […] The post What I…
14 Mar
Aristotle gets credit for first principles thinking, but the concept has never been more relevant than it is right now. As we shift to building software with AI tools, this is one of the most important mental models you can carry into every client engagement. The Core Idea First principles thinking is the practice of […] The post First Principles…
3 Mar
Every project starts the same way. There’s a problem worth solving, a rough sense of the constraints, and a blank page. The hard part isn’t writing the first line of code—it’s figuring out which direction to go when several look equally reasonable. Should this be an event-driven system or a synchronous pipeline? Do we split […] The post How I…
26 Feb
Think about an HTML page. At its core, it’s just a container—a bounded environment with a set of rules, capabilities, and constraints. Everything that happens inside it is governed by what you put there. Now imagine that same concept, but instead of DOM elements and event listeners, you’re placing AI agents with distinct personas into […] The post Digital Clones…