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...