Forward Flow
Most development pipelines optimize for the wrong thing. They optimize for correctness theater. Lengthy review cycles, bikeshed comment threads, approval queues that exist to make managers feel safe.…
Permutation Maps: zip+sort with indirection
At ACCU on Sea 2026 I sat in on Nicolai Josuttis’ talk Taming C++23: The things about C++23 you do not know. One of his examples was the zip+sort: sorting two separate collections together by zipping…
Agentic Coding Outperforms Human
I spent an hour trying to improve a function in my Rust program. Unfortunately, after all my work, it turned out my changes made it slower, so I had to discard the new version. In dismay, I loaded a…
Neocaml 0.9: A Better REPL, Dune/Opam Completion, and More Robustness
It’s been a couple of months since the last neocaml release, and the reason is simple — for a while there I was genuinely out of ideas. Back when I shipped 0.6 I declared (again!) that I was done…
Monadic logic
It is a truth universally acknowledged that a data structure in possession of information, must be in want of an extra type parameter. In the last couple of posts, we looked at implementing a simple…
VueConfUS 2026 Recap
A recap of my experience at VueConfUS 2026 in Atlanta, GA!
Local development with coding agents on Kubernetes using Signadot
Coding agents are quite good at writing code now. Any of the agents can easily add a function, wire up an endpoint, or open a pull request for you. But there's a gap that you run into in practice.…
I Lost My Setup Once. Now It Lives in a Repo.
I Lost My Setup Once. Now It Lives in a Repo. This week I switched to a new laptop. Nothing dramatic — nothing lost or stolen. Just the old one out, a new one in. Almost everything moved over on its…
How I turned Pi.dev from a coding assistant into an operator stack
In the last two posts, I covered the first two parts of my Pi.dev setup:
Simplicity Police
An essay about intellect, complexity, perfection and treating software as play-doh.
Non-practical Pricing Techniques for Cliquets?
I have been looking at various techniques for cliquet pricing with a focus on the Heston model. The obvious way is to use Monte-Carlo. Can we do better? The difficulty of the somewhat simple contract…
Understanding Ordinary Events
One major advantage of Ordinary’s architecture is that it makes it possible to derive insights about behavior and performance without a ton of additional time spent configuring and tuning…
A native FileMaker-only method for unzipping .zip archives in container fields
This is a proof of concept. I had an acquaintance whose FileMaker system was receiving PDFs from an external source, which would land in a container field. The problem was, the source was sending…
The Roles of Variables
Variables usually have specific jobs, and most fall into a simple taxonomy of roles. Understanding these roles makes programming easier to learn.
Software Values
Values Values instill a goal of action to perform. The realist by the endless winters of death has fashioned new methods of action. The right way is the best way in any condition is the best foot forw
Introducing Oireachtas Votes: find out how Irish political parties vote
Caveat lector This post discusses tools reluctantly written with AI assistance. If you don’t entertain using them under any circumstance, and think even reading about them legally compromise…
Weekly Reflection #30 - Think Before You Debug
Each week, I share one insight. One piece of wisdom. One question to reflect on. (and a little Lagniappe) My favorite debugging story comes from Rob Pike when…
Anchor your .gitignore entries
Preface I am an avid selfhoster, and I follow the gitops pattern with ArgoCD for controlling the state of my Kubernetes (k3s) cluster. Something which I probably do different than most folks is that…
Giving Agents Minimal Tools
Agents are powerful because they can reason their way towards a goal using tools to interact with the world. Some tools gather new information, other tools perform actions. The most compelling…
The View Layer Rails Couldn't See
For most of Rails’ history, almost every layer of the stack has had a tool that parses it. RuboCop reads your Ruby as a syntax tree; Brakeman traces tainted data through it; ESLint reads your…
Is fine-tuning small models worth it? Structured extraction from index cards
tl;dr: You can fine tune a small specialised information extraction model to work even better with a specific domain (archival index cards) and still have it generalise to unseen schemas. The model…
"No way to prevent this" say users of only language where this regularly happens
In the hours following the release of CVE-2026-55200 for the project libssh2 , site reliability workers and systems administrators scrambled to desperately rebuild and patch all their systems to fix…
Give Your Vercel Eve Agent a Memory: Building a Context Graph with NAMS
Vercel's Eve framework makes durable agents easy - but agents still forget. Here's how I gave one persistent, graph-native memory using the Neo4j Agent Memory Service (NAMS), built around a real…
Introducing Test That!
I’m excited to announce the release of Test That!, a powerful library for test assertions in Rust. It is a fork of GoogleTest Rust.
Pragtical v3.12.3 Release
Pragtical v3.12.3 is out with multi-project search, an on-demand autocomplete
A batch job, in The Elm Architecture
At the end of my native Elm post I said I hoped my next elm-run project would be a REST API, or maybe replacing some small existing app. I lied a little. I went the other direction and grabbed…
Open Design System Format: Hand Your Design System to an Agent
Coding agents write good UI and bad versions of your UI. The Open Design System Format packages a design system as a bundle of markdown, HTML, and CSS an agent can read and build from: tokens that…
I Wanted AI Code Review I Could Actually Own. So I Built Codra.
Codra is a private, free and open-source AI code review engine with bring-your-own models, infrastructure and limits.
Use `nono` AI agent sandboxes in Zed Agent Servers
I recently set up [nono](nono.sh) sandboxes on my Mac to put my Claude Code sessions into a more restricted playground. Having Claude live unrestricted on my whole filesystem did not feel right,…
Setting process priority for Laravel Horizon workers
## Why you'd want this Linux schedules CPU time using a **nice value** between `-20` (highest priority) and `19` (lowest). By default processes start at `0`. If your server is dedicated to queue…
How to Balance Speed, Quality, and Mental Overhead in Agentic Engineering
I've been back at work for about a month now after parental leave and a 12 week programming retreat at Recurse Center. We're leaning hard into agentic engineering and I'm bullish on it - I spent a…
Adding Stats to a Static Blog
A little while ago I was wondering just how many words I’ve written on my blog. I was inspired by Wouter over at Brain Baking . Now, I use a static site generator for my blog, the upshot of which is…
Where Should Loading State Live In Swiftui
Where Should Loading State Live in SwiftUI?
Building Your Design System Workflow - Rituals and Templates
Understanding what a good workflow looks like and actually building one are totally different things. You know your proposals need a clear place to go. You know decisions need a framework. You know…
node.js syntax checker bug about shadowing in private fields
node.js syntax checker bug about shadowing in private fields 2026-06-24 · Chris Finally understood an issue I was encountering, that in my opinion is a bug and super confusing and deceptive.…
How to Write an Effective Software Design Document
A good design doc can save you years of development time. Writing a design doc forces you to think through important decisions before you waste time on the wrong implementation or paint yourself into…
Liveness Proofs in Veil, Part I: The First Step
Safety property means “nothing bad happens during the run of a program”; liveness property means “the program eventually does something good”. In this post, we walk through a simple proof of a…
How I Do Design as a Backend Developer
From Bootstrap in 2011 to Claude Design in 2026, a look back at 15 years of web design evolution and design systems, seen through the eyes of a backend developer.
Expanding Guile macros one step at a time
When debugging Guile macros, sometimes one expansion step is all you need. Here's a small tool I wrote to scratch that itch.
Reverse interviews
An interview is a two-way process. Here is the set of "reverse interview" questions I use to assess the real quality of a software job — the red and green flags that reveal what a place is actually…
Your Attention Is the Bottleneck, Not Your Agents
Agent capacity is cheap now and getting cheaper; my attention is the fixed, scarce resource. Everything I build is attention-budget design: the autonomy boundary, the PR gate, and running everything…
Independent? Impossible! Why Dependencies Matter So Much
Software architecture is about managing dependencies, and independence is the goal — or so it seems. In reality, however, it is not even entirely clear what dependencies actually are.
Risultati FdI 24 Giugno 2026
Sono disponibili i risultati della prova pratica e di teoria della programmazione del 24 Giugno 2026. Il risultato complessivo è stato calcolato dove applicabile.
AI code with loops and subagents
The new trend in AI coding is called loops. Well, in reality those are just subagents. Yes, subagents that you don't manage, but another AI does for you. And you just watch, and review.
Don't Do Quality Assurance
I co-founded a consultancy that sold software quality for roughly a decade. The advice I am most certain about after those years sounds like a contradiction coming from me: do not do quality…
How to use an under-utilized Claude Max plan to save API cost
Use "claude -p" headless mode as a pseudo Anthropic API to run requests through an idle Claude Max plan, and the trade-offs that come with it.
True Shuffle
A Kotlin/Android app that shuffles Spotify playlists in a truly random order.
Automating App Store Connect with Fastlane (and Letting Agents Drive)
I ship a handful of small Mac and iOS apps. Lexicon, idea.log, Evergreen. None of them are big businesses, which means none of them justify me spending an afternoon clicking around App Store Connect…