Agentic and AI-assisted software engineering

Agentic and AI-Assisted Software Engineering

Putting an AI agent to work takes more than handing it a task. It takes an understanding of its strengths, the judgement to choose work that suits it, and a way to guide and review the result.

This collection explores an emerging division of labour in software engineering: combining human wisdom with machine knowledge and mechanical reasoning. It moves from a mental model for collaboration to practical applications in refactoring and observability, then considers how software design itself can make that collaboration more effective.

1. Understand the Collaborator

Flake stone tool (approx. 3 million years ago)

An agent can explain a thousand engineering concepts without the experience that gives them meaning in practice. Treating it as a knowledgeable but inexperienced collaborator changes the interaction: context, conversation and mentoring become essential parts of solving the problem. This essay establishes the mental model behind the rest of the collection.

2. The Brain-Work Brain-Toil Framework

A Parthian archer delivering a Parthian shot.

An engineer works out a refactoring pattern; an agent helps apply it across a mature codebase. The distinction between designing the solution and repeating its application creates a productive division of labour. This case study follows the guidance, planning and review that make it work—and the shortcomings that still require an engineer’s hand.

3. Carry the Approach into Observability

Photo showing many things made of logs (wood).

Controlling a logging bill requires understanding what the logs are doing for the system. Log Quad gives that understanding a structure: intent, severity, frequency and location in the code. Engineers define the analysis and decide which changes make sense; agents help classify emissions and apply those decisions across the codebase.

4. Make Intent Clear in the Code

Engineered Composable Flows (approx. 200 BCE) - Khuzestan, Iran

Collaboration also depends on the software being worked on. Tangled business logic and cross-cutting concerns make intent harder for both engineers and agents to follow. The story behind Flow, a C# effect system, explores how composition and declarative operations can make code easier to understand, extend and review.

Comments