Browse all posts by tag

A Time Machine for Your Working Directory

In a previous post, I introduced the Intent Log, a way to capture the why alongside the what during development. The Intent Log targets and solves a piece of the comprehension problem. But there’s a related problem it didn’t address: the safety problem.

Read more...

Capturing Intent Before the Commit

In previous posts, I’ve talked about the Comprehension Crisis: the risk that as we move faster, especially with AI agents, we lose the “why” behind our code. A git diff tells you what changed. It says nothing about what was tried and rejected. It’s a record of the result, but it deletes the tries and struggles.

Read more...

Porting Coreutils to Koka

I like to explore different programming languages, and I often try them out but most of them ends up as a “Hello World” in a folder I never reopen, digital fossils of a Saturday afternoon curiosity… My actual day-to-day has been settled for a while: Kotlin when I’m building for the web, Rust when I need a CLI tool. I do think about them a lot, but their syntax, semantics, and functionality don’t tickle me the same way anymore.

Read more...

Beyond the Branch: The Social Fabric of Trunk-Based Development

When discussing Trunk-Based Development (TBD), we often get bogged down in the mechanics: the branching strategy, the CI speed, or the revert logic. But as a colleague recently pointed out to me, moving away from Pull Requests (PRs) is a “drastic change” that impacts more than just Git history. It impacts the social fabric of the team.

Read more...

The Panic Button for Trunk-Based Development

Trunk-Based Development is designed for speed. It removes waiting and keeps integration continuous. Code moves to the trunk quickly, often within minutes.

Read more...

The Comprehension Crisis

When we talk about the current AI surge, the conversation almost always centres on output.

Read more...

The Pull Request Trap

Most developers recognise the “waiting room” of software development. The code is written, the tests are green, and the change is ready. Then you hit git push, open a Pull Request (PR), and the work stops moving, and then the wait begins. For many developers, the time spent waiting for reviews exceeds the time spent writing the change.

Read more...

Locality

In The Claes Test, I ask a critical question about collaboration: Do boundaries get out of the way so teams can solve problems together? (Question 7).

Read more...

The Claes Test

In a previous post, I talked about Kurt Lewin’s equation: \(B = f(P, E)\).

Read more...

Lewin's teachings and modern DevOps

When we talk about DevOps transformation, the conversation usually starts with tools. Kubernetes. CI/CD pipelines. Cloud platforms, and nowadays LLMs.

Read more...