---
title: About
url: https://www.grahambrooks.com/about/
author: Graham Brooks
description: 'Graham Brooks: forty years of software engineering, now building open-source tools that help AI coding agents work on large and legacy codebases.'
---

# About

<!--
  Drafted from what the site already says about you. Everything below is
  sourced from the home page, the project pages, or the post archive.
  Worth adding in your own words: where you've worked, what you do now
  (consulting? employed? open to talks?), and how you'd like to be contacted.
-->

I'm Graham Brooks. I've been writing software for about forty years, and writing about it here since 2009.

Right now I build open-source tools for one problem: coding agents are good at code they can see, and most real codebases are too big to see. The tools give an agent a map of the code ([symgraph](https://www.grahambrooks.com/projects/symgraph/)), architecture and API-contract rules a commit can fail on ([tropism](https://www.grahambrooks.com/projects/tropism/), [brake](https://www.grahambrooks.com/projects/brake/)), and diagrams generated from plain files an agent can write ([forge](https://www.grahambrooks.com/projects/forge/), [mmd](https://www.grahambrooks.com/projects/mmd/), [puml](https://www.grahambrooks.com/projects/puml/)). The [projects page](https://www.grahambrooks.com/projects/) lists all of them.

## What I write about

Three threads, which overlap more each year:

**Agents on real codebases.** What a coding agent needs from its environment to do useful work on a system it can't read in one go — and what review, testing and architecture become when agents write most of the code. Start with the [Agents on large codebases](https://www.grahambrooks.com/series/agents-on-large-codebases/) series.

**Architecture.** Event-driven systems, domain models, consistency, and the link between team shape and system shape. [Zero Down-time Relational Databases](https://www.grahambrooks.com/post/2013-08-29-zero-down-time-relational-databases/) was written in 2013 and is still how schema change is done; [Team Distribution Models and Conway's Law](https://www.grahambrooks.com/post/2014-03-31-team-distribution-models/) asks which of team shape and system shape you're choosing.

**Engineering practice.** TDD, refactoring, build tooling, and the argument that internal quality is [a health question, not a debt ledger](https://www.grahambrooks.com/post/2018-12-27-technical-health-over-technical-debt/).

## How posts are organised

[Posts](https://www.grahambrooks.com/post/) holds the essays. [Release notes](https://www.grahambrooks.com/releases/) for each tool are kept separately, so a month with twenty version bumps doesn't bury them. [Series](https://www.grahambrooks.com/series/) collects posts that build on each other, in reading order.

## Get new posts

[Subscribe by email](https://www.grahambrooks.com/subscribe/), or use a feed reader: [/essays.xml](https://www.grahambrooks.com/essays.xml) has the essays only, [/index.xml](https://www.grahambrooks.com/index.xml) has everything including release notes.

The code is at [github.com/grahambrooks](https://github.com/grahambrooks).
