Coding Assistants

Post Image

Observability for AI-Assisted Development

Developers using AI estimate they’re 24% faster. A randomised controlled trial measured them at 19% slower.That’s from METR’s 2025 study. These were experienced open-source developers working on their own codebases with tools they chose. Their self-assessment was off by over 40 percentage points.If your perception of AI’s impact is that unreliable, what are you actually measuring?If you didn’t measure before AI, measuring with AI won’t work.You can’t attribute improvements to AI if you don’t know what “before” looked like. Cycle...

Read
Post Image

The Unix Philosophy for Agentic Coding

Most people use AI coding agents backwards. They hand the agent a problem and ask it to solve the whole thing. The agent reads, reasons, generates, and hopes for the best.There’s a better way. One that’s cheaper, more predictable, and already well understood. It’s the Unix philosophy, applied to how we work with AI.The Unix philosophy boils down to: do one thing well, compose small tools, let the shell orchestrate. When you work with an AI coding agent, the agent...

Read
Post Image

A Skill Map for Learning AI-Assisted Development

Principles are useful, but they don’t tell you what to practice.In my previous post on intelligent Engineering principles, I outlined the ideas that guide how I build software with AI. Since then, I’ve had people ask: “Where do I start? What skills should I build first?”This post answers that: a map of the skills that make up intelligent Engineering, organised into a learning path you can follow whether you’re an individual contributor looking to level up or a tech leader...

Read
Post Image

Context Engineering for AI-Assisted Development

Same model, different tools, different results.If you’ve used Claude Sonnet in Claude Code, Cursor, Copilot, and Windsurf, you’ve noticed this. The model is identical, but the behavior varies. This isn’t magic. It’s context engineering.In Principles for Building With AI, I mentioned that “context is everything” and that “context engineering matters more than prompt engineering.” But I didn’t explain what that means or how to do it. This post fills that gap.Imagine you’re in a day-long strategy meeting. There’s one whiteboard...

Read
Post Image

Structuring Claude Code for Multi-Repo Workspaces

Claude Code understands one repo at a time. Most teams have thirty.Microservices, shared libraries, infrastructure-as-code, frontend apps, data pipelines, all in separate git repos. Start Claude Code in one and ask about another, and it has no context. It doesn’t know the workspace exists.Here’s how I’ve been setting this up to work across repositories.When you start Claude Code in orders/order-service, it has no idea that orders/orders-ui exists next door, or that shared libraries live in shared/, or that the data...

Read
Post Image

How to Choose your Coding Assistants

Coding assistants like Cursor, Windsurf, Claude Code, Gemini CLI, Codex, Aider, OpenCode, Jetbrains AI, etc. have been making the news for the last few months. Yet, the choice of tools is a lot harder and limited for some of us than it seems.TL;DR: OpenCode > Claude Code > Aider > Copilot > *Disclaimer: Not all tools are created equal. The examples listed here might be invalid fairly soon as tools evolve fairly rapidly.You can plot the different types of coding...

Read
Post Image

Level Up Code Quality with an AI Assistant

I've previously discussed how a world class developer experience is essential for a high-performing team. When teams lack such a setup, the most common response is a lack of time or buy-in from stakeholders to build these things. With AI coding assistants being readily available to most developers today, the engineering effort and the cost investment for the business are lessened, reducing the barrier to entry.This blog showcases an actual codebase that has not been actively maintained for over five...

Read