-
I have been meaning to share more about my LLM workflows and tooling for a while, partly to have a reference for conversations, but mostly to learn in public. Agent Chisels is where I will be sharing the custom artefacts (primarily skills, with commands and agents to follow) that…
-
This year I bit the bullet and moved mail, calendar and drive from Google to Proton. Knowing that my family is not being profiled when, for example, I plan a doctor's appointment feels liberating. Sure, there were fun and useful technical improvements, like getting a podcast micr…
-
This is a short post to share a positive experience I had using an LLM agent to quickly add a feature to an existing personal CLI time-tracking application. Below, I describe how I added it using Zed, Opencode and Claude. To start, I wasn't even sure the feature I needed existed …
-
I have been writing "Today I Learned" posts (TILs) for a few weeks now and I started writing them as a complement to long form blogging. But I found myself spending 45-60 minutes, sometimes longer, per TIL instead of 15-25. This defeated the purpose of quickly recording and inter…
-
Years ago, the book Accelerate changed my view on software development and delivery fundamentally. Of course, there are its findings (dare I say 'revolutionary'?) on which technical and organisational factors drive high performance software delivery. But that is not what I want t…
-
After wrapping my head around the constant changes in LLM subscriptions and performance, here's my new coding stack for October 2025: Warp Pro: my go-to agentic CLI, speedy and reliable for coding and task automation. Supports most top end LLMs. Zed Pro (using the $20 trial, then…
-
If you've read some of my posts before or worked with me, you know I like using Architectural Decision Records (ADRs) for lots of reasons. To me the most important one is documenting the why of a decision. If you've worked with AI models before, you've probably asked them for opt…
-
Claude Code's output styles control how the AI responds to your requests. This summary covers the built-in styles and when to use each one. TLDR: Output styles = stored system prompts that change Claude's behaviour. Slash commands = stored user prompts for quick actions. Use th…
-
A very short post on Claude Code's new output styles feature which I have been experimenting with in the past days. Here are some actual examples of how you can leverage output styles to change 'hard-configured' Claude Code behaviour: Remove Claude Code branding from commit mes…
-
I prefer Jujutsu (jj) over Git for version control, but getting Claude Code to work with jj proved tricky since Claude Code defaults to git. This post explains how to configure Claude Code to use jj instead of Git for version control operations and file change detection. I'll sho…
-
When Claude Code creates git commits for you, it automatically adds its own signature to every commit message, including a promotional link and co-author attribution. Personally I think this is pretty annoying but especially for professional work or team repositories you may pref…
-
Context engineering shows interesting potential to ground documentation to actual code, or as how I sometimes refer to it: reality. Linking AI instruction files (CLAUDE.md, .rules, .cursorrules, etc) to development documentation may turn static docs into living resources. Each co…
-
TLDR: Use code coverage reports to verify that test refactorings haven't accidentally changed what functionality you're testing. Same coverage percentage before and after refactoring gives confidence your tests still cover the same code paths. If we refactor code, tests should co…
-
A few days ago, I wrote about an issue I encountered where the code coverage for one of my projects failed on CI but worked fine locally. I also discussed a solution. It turns out there's an even better alternative: switch code coverage tools entirely and use llvm-cov instead of …
-
A short post to help if you run into the same issue. TLDR: If your code coverage reports show vastly different results between local development and CI, explicitly set --engine llvm in your cargo tarpaulin command. I recently ran into a frustration you may be familiar with: your …
-
TLDR: Below are test naming guidelines that help me write consistent, clear test names. This is quick post with the Test Naming Guidelines I have been using to make my test names consistent across multiple projects. I use also these with LLMs when writing tests or refactoring mul…
-
Git pre-push hooks can automate local installation of your personal CLI tools, creating a development workflow where your working environment always has the latest version of your code. When developing CLI tools, for example for personal use, I often want to run the latest versio…
-
Making architectural decisions is one thing, but have you ever wondered how to make them more effective? Adding a Verification section to Architecture Decision Records (ADRs) can make the difference. This simple addition bridges the gap between theory and practice, making decisio…
-
Notes inspired by Emily Bache's short Youtube video Design Better Code with Preparatory Refactoring in TDD | Demo. A preparatory refactoring is a refactoring to make future changes to accommodate new requirements easy. By definition, current behavior should not be changed. Instea…
-
Teams adopt Architecture Decision Records (ADRs) to document decisions, avoid revisiting settled matters, onboard newcomers, adapt to changing circumstances, and sharpen their thinking. However, there are several other valuable benefits that often go unnoticed. A clear decision p…