The 10x Era Is Here. Ten Times More What?
Ten times more code is the shallowest ambition for coding agents. The real leverage lies deeper.
MarkEdit Sort Text Extension
I recently discovered MarkEdit , an open-source Markdown and text editor for macOS. It is intentionally minimal and fast, but I missed one small feature: sorting text, either a selection or the…
OpenSpec: The agreement layer that keeps your agent honest
AI coding assistants confidently build the wrong thing when requirements live only in chat. OpenSpec adds a lightweight spec layer — explore, propose, build, archive — so you agree on what to build…
Fifty-five billion tokens
Fifteen months of agent session logs: 55 billion tokens across 14 models (and what they would have cost at API rates)
Hello, world!
I want to present a project that I've been working on for the past 4 months: an alternative Rust LSP implementation that is built with a focus on low memory usage. It has two main features: It can…
#0
The project got its first release.
What Replaces Git When Agents Write the Code
. [What Replaces Git When Agents Write the Code](what-replaces-git-when-agents-write-the-code-cover...
Postgres as an isolation reference model
Use PostgreSQL's transaction isolation levels as a reference model for reasoning about the guarantees and tradeoffs of other relational and non-relational databases.
The Repo as Delivery Mechanism
An advisory mandate delivered through a private GitHub repository: what it changed about shared material, about the sessions, and what it foreshadows for services work.
Nifty Django Feature: Counting on Multiple Columns
Part of the Nifty Django features series: The Count expression only works on a single column, but you can use Subquery to count on multiple columns!
SQLite for Everything
Dr. Raphael Bauer penned an excellent article (PostgreSQL for Everything) on the value of using PostgreSQL to power your enterprise. I’ve taken the liberty of correcting a couple of errors, mainly he…
DuplicateHandle works on sockets, mostly
WinAPI represents most “things” as HANDLEs: files, cross-process mutexes, threads, jobs, etc. Sockets, however, are a notable exception: while on Unix systems they’re no different from files, Windows…
API design for agents
If you write code, you want your API to be clean, concise, and beautiful. Less explicit, less verbose. Agents may be the opposite. Give them a full explicit API, and don't leave anything hidden.
An Accessible Theme for Oh My Posh
Microsoft's Powershell has been my favourite shell for several years now. Not only is it an extremely powerful shell on Windows, it also runs perfectly well on mac and Linux; it tends to be the first…
Transaction Test Protection
Automated testing is good. This is, I hope, not a controversial statement. Small, isolated tests are also good. This should also not be a controversial statement. But sometimes, tests will need to…
Precision is the missing virtue in Go interfaces
Every parameter is a contract. Make it small enough to honor
Precisão é a virtude que falta nas interfaces Go
Cada parâmetro é um contrato. Faz ele pequeno o suficiente pra honrar
Hover Proximity with Scroll-Driven Animations
Hover proximity? It's when you affect the hovered element and a few surrounding elements. A fancy effect made possible using modern CSS. ⚠️ (Chromium-only for now) ⚠️ See the Pen Hover Proximity with…
Milvus 3.0: Closing the Search Gap
View Slides Test it yourself!
TIL: bash command tracing at function level
some-function () { { local - ; set -x ; } 2>/dev/null some-command " $@ " } { local -; set -x; } 2>/dev/null enables set -x (command tracing/xtrace) for just this function, without leaking that…
Benchmarking Quantized LLMs for Local Coding Agents Part 5: Do Qwen's Recommended Sampling Parameters Explain the Thinking Penalty?
In Part 1 and Part 2, I reported some peculiar behavior for quantized Qwen3.5-2B models. In Part 3 I moved to Qwen3.5-35B-A3B, and in Part…
The ECDSA tax: a field guide to threshold signing
Two vendors sell you an “MPC wallet”. Both keep the key in shares that never meet, both produce ordinary signatures, both have a whitepaper with a lock icon on it. One of them signs in…
I Built matbrown.dev
I built a new site: matbrown.dev . Drop a folder of numbered markdown files in, and it becomes a course automatically: a table of contents, runnable code examples, and a set of questions to check…
Automatic Firmware Generation for Spaceflight Hardware based on Schematics
The interaction between hardware design and firmware implementation requires strict consistency in embedded systems. Firmware must exactly match the schematic-level component configuration and…
For and Against Method
The 2nd part will add some actionable insights through the examination of post-Kuhnian thought and the debate for and against method.
Using hetzner's free inference in your coding agent
Hetzner is offering some free inference and since free tokens are always welcome it would be a shame not to give the models for a spin. Specially since they now offer Qwen3.8-27B for free, which is…
Badger Quote of the Day
Following on from the Badger 2040 Hello World example, here is an inspirational quote of the day printed on e-paper. Because this application is a little more complicated, I wanted to test and debug…
Condensing Twenty Years of Wisdom in One Markdown
I've been shipping at a genuinely ridiculous pace lately, and somewhere in there I stopped being an engineer and became the bottleneck in a twenty-person team of AI agents. Don't worry, I am working…
Set up PostHog on iOS to track exactly what you want
The PostHog iOS SDK collects a lot of properties for each event tracked. I use this piece of code to take control over what property is sent exactly.
Ormolu: one refactor that fixed everything
This post documents a big refactor in Ormolu that resolved all comments-related issues.
Updates: Vite 8, TypeScript 6, Storybook 10, pnpm 11
My frozen shoulder problem means I haven’t had a chance to keep dependencies up to date on my InfiniSheet project. I tried to keep applying dependabot automated updates but hit a problem with some…
Investing in automated C to Rust translation
This article was originally posted on the Ubuntu Discourse, and is reposted here. I welcome comments and further discussion in that thread. I have written before about the role that Rust will play in…
Highlighting a range of text inside an input or textarea
Using OpaqueRange and the Custom Highlight API
Three-axis motion with GRBL
getting three stepper stages to work with GRBL software and drivers
AMTA - AI and the Future of Low-Resource Languages
Announcement, Colab. At AMTA 2026 me and Vera Senderowicz Guerra gave an overview of the state of the art of LLM usage to translate English into a selection of languages, from low-frequency ones such…
How to Build a Slack Bot with Flue
Learn how to create and deploy a Slack bot with Flue. We add tools, secure event handling, threaded replies, reactions, and persistent state.
The new geojson.io
Good news from the folks at Mapbox - they've revamped geojson.io using some of the bones of Placemark , which I open-sourced in 2024 . It's pretty poetic for things to come full circle like that -…
Poor Man's devenv
devenv is great. Declarative dev shells, hooks, scripts, tasks. At work, using nix is fairly uncommon, so I don’t want to litter everyone’s repo with devenv or shell.nix files. Devenv can…
Monitoring Non-interactive Terminal Sessions with Sentinel
Lately I have found myself dealing with more and more terminal sessions on my Mac. These were not just sessions where I had specific areas of work open. These were long running processes. Local…
Opus 5 doesn't use em-dashes in code comments
I’ve been using Opus 5 as my main coding for the last few days 1, and I noticed something odd: the code comments stopped using em-dashes; everything is double hyphens (--) now. Instead of going off a…
C++26: std::polymorphic
In the previous article, we looked at std::indirect — C++26’s answer to the “I need a heap-allocated member with value semantics” problem. indirect<T> always stores exactly a T. But what if you…
Changelog: Browsers, Rainbows, and an Honest Token
Two launches went out today — Save Cannes and Kairos each got their own post, so I won’t repeat them here. This is everything else since the Citadel changelog: six releases across four…
My Calendar 3.8.0 and My Calendar 3.5.0 released
I’m releasing simultaneous major updates to My Calendar and My Calendar Pro today! The My Calendar release is particularly exciting, adding a couple of commonly requested features. My Calendar…
How I lend my computer to coding agents
Last edited on August 18th, 2026. Since the end of 2025 that automatically generating useful code can be unlocked by giving large language models (LLMs) the tools and resources to work in loops,…
Characters and Conversations
Based on the requirements of two of my WIPs, I needed robust character and conversation systems. Normally these would be game-specific since the story dictates how dialogue is presented and executed.…
KCL part 3: look and feel
This post is part 3 (and probably the final part) of a multi-part series:part 0 (an intro and brief description of KCL)part 1: unitspart 2: program memorypart 3: look and feelThis post isn't about a…
Chafa
After reading What software do you use daily in 2026? on Lobster, I learned about Chafa. Described as: The premier UX of the 21st century just got a little better: With chafa, you can now view very,…
Agentic Engineering Lesson #3: Taste
I've often been asked what makes a junior developer into a senior developer. Often it's a junior developer asking me the question. And often my answer is system design skills.The best…