AI/ML

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

The Comfort Plateau AI Built For You

I’ve spent the last year watching engineers and writers adopt these tools, and the same pattern keeps showing up. The first three months look transformative. The next nine look almost identical to the first three.The output keeps coming. The confidence keeps building. The skill stops moving.This isn’t a story about AI making people dumber. It’s a story about a comfort plateau that didn’t exist before, and what it costs to stay on it.Draw a spider chart. Hundreds of axes: SQL,...

Read
Post Image

Helping Governments Build Evidence-Based Policies with AI-Powered Navigation

The client is a US-based philanthropic organization that invests in worldwide efforts to enhance global health, combat poverty, and improve education for healthier and productive lives everywhere. Local governments can struggle to turn data into impact. While they know good ideas exist elsewhere, finding and using the right ones for their specific community can often be tough. Policy-making can often feel like guesswork because: Understanding a community goes far beyond demographic data. It means looking at things like how people...

Read
Post Image

The RAG Reality Check: From Vibe-Coding to Production

We’ve all seen the dopamine hit of the "magic" AI demo. In the current landscape, it has never been easier to build a system that feels like the future in thirty minutes. We have officially entered the era of vibe-coding—the practice of using AI-assisted, rapid prototyping to assemble compelling applications that secure client buy-in and validate use cases.This is particularly true for Retrieval-Augmented Generation (RAG) systems. RAG is the essential process of grounding Large Language Models (LLMs) in data they...

Read
Post Image

Engineering the AI Partnership: Making AI-Accelerated Delivery Reliable

We rebuilt an existing website to be CMS-driven: Strapi owned content and page structure, while a modularised Vue frontend handled rendering and behaviour. Over an 8‑week delivery window, we went from “AI is exciting but unpredictable” to shipping  — by treating AI like a teammate with a clear process, not a magic button. This post is a standalone case study of that evolution: the workflow we designed, the mistakes we hit early, and the system that kept . When we first got...

Read
Post Image

From Naive Automation to Intentional Collaboration with AI

When Claude Code landed in our team, we dived right in and jumped on the AI train: we asked it to rebuild the site end-to-end with a CMS behind it. We had to recreate in with , so felt like the obvious move.It produced code fast — and we spent the next two days discovering why “fast output” isn’t the same as a system you can extend, test, and hand over. This post is the story of that failure, and the pivot that...

Read
Post Image

AI in Technical Decision-Making: A Field Guide

We had to run discovery, to do it, and to deliver — so instead of debating CMS options in theory, we used AI to and let the client make an evidence-based choice.We were brought into a project to migrate parts of an existing web application into a Content Management System (CMS) so the marketing team could ship content without constant developer involvement.The constraint that shaped everything: we had less than a week to complete discovery (including presenting working prototypes), and then eight...

Read