Blog

Written by the people who sign it off

New models, new agent frameworks, new risks: we write about what moves in AI and engineering, and what it means for the software you run. Practical takes in plain English, from the people who sign it off.

Featured

Is AI-generated code safe to ship? A senior engineer's guide

AI-built code is usually safe to run and often not safe to ship. A senior engineer's guide to the difference, the evidence, and how a review gate makes AI-generated software safe to put in front of customers.

Can you trust your AI coding assistant? What the GhostApproval flaws mean for the software you ship

In July 2026 the GhostApproval research showed six major AI coding assistants could be tricked into writing to files their approval dialogs never named, your SSH keys among them. Strip out the AI and it is an ordinary symlink attack, and the vendor responses make the case for senior review better than we could.

Vibe coding: what it is, and where it breaks

Vibe coding means prompting an AI to build software and shipping what it produces without reading it. Coined for throwaway projects, the technique breaks in measurable ways once it reaches production. A senior engineer defines vibe coding, separates it from reviewed AI engineering, and maps the five places it fails.

AI technical debt: what AI coding tools leave behind, and how to pay it down

AI coding tools do not invent technical debt, they accelerate it, generating code faster than any team can review, understand and refactor. This guide covers what AI-built code leaves behind, from duplicated logic and shallow tests to hallucinated dependencies and security debt, why it accrues by default, and how a senior review gate pays it back before the interest compounds.

Non-human identity: how to govern the machine actors on the systems you run

Machine identities outnumber people many times over, they are broadly permissioned, and they are barely watched. A non-human identity is any credential software uses to act: a service account, an API key, a token, or an AI agent. A senior guide to governing them with the same discipline you already give your people.

AI agent audit trails: how to prove what an agent did on a system you manage

You can grant an AI agent access carefully and still be unable to say what it did. On a system you do not own, that record is the deliverable. How to give an agent its own identity and build an attributable, tamper-evident audit trail you could hand to a client or an auditor.

We audited one of our own internal tools. Here is what we found

We used to keep a small internal tool for passwordless access to the open-source applications we run for ourselves. It was built with outside help and never put through our own senior review. When we finally reviewed it, it failed: a hard-coded key, weak credential storage, a disabled authorisation check, an end-of-life stack. None of it needed AI, which is the point.

Securing software you built, inherited, or self-host: a senior guide

Software you built, inherited, or self-host all need the same thing: a security review against recognised standards. A senior, sourced guide to what the review covers, the vulnerability classes that matter, and how to run it.

Pre-acquisition code due diligence for AI-built products

Technical due diligence on an AI-built product: what a reviewer finds in an afternoon, how findings map to deal risk, and what a decisive diligence report contains.

OWASP Top 10 for LLM applications, in plain English

The OWASP Top 10 for LLM Applications 2025, explained in plain English: all ten risks from prompt injection to unbounded consumption, each with an example and what to do.

Prompt injection explained: the risk in any LLM feature

Prompt injection is when content a model reads is treated as an instruction. Why it is the top LLM risk, why it is worse than SQL injection, the EchoLeak case, and what actually contains it.

How to review AI-generated code: a practical checklist

The structured review a senior engineer runs on AI-generated code, in priority order: authorisation, secrets, injection, test quality, error handling, dependencies and architecture.

What a vibe code audit actually finds

The recurring problems a senior review finds in AI-built software, from exposed secrets to missing authorisation and hallucinated dependencies, and what safe to ship actually means.