Start with admin.*
I remember the influence of “Getting Real” — the book from the folks at 37 Signals — in my early web development projects back in the day. The message was simple and clear:…
Techpaladin are hiring!
If you've been around KDE, you've probably heard of Techpaladin Software We're a consultancy that works almost exclusively on KDE, improving KDE upstream while delivering the features and…
How to Build a Memory Your AI Agents Can Actually Reuse
The useful part is not giving agents more context. It is making your research, notes, and sources available again in the next session.
Chapter 4 — Reading the Memory Map and Building a Physical Page Allocator
Before we add paging, a heap, processes, filesystems, or user programs, the kernel must answer a basic question: Which physical 4 KiB pages of RAM are safe for me to use? Right now, our kernel can…
Local Open-Weight LLMs in Coding Harnesses
Short note on trying local open-weight LLMs across Qwen-Code, Codex, and Claude Code harnesses.
Futures Should Be Composable
Futures Should Be Composable
copilot.el 0.7
Good news, everyone – copilot.el 0.7 is out! And it’s a big one. Ever since I took over the maintenance of copilot.el in the spring of 2025, I’ve had one north star: close the gap between Emacs and…
Flock 2026 and Devconf.cz 2026 trip report
Long time no blog, once again - as always, I'm mostly posting on Mastodon now, so follow there if you're missing the Content. This is a bit big, though, so it goes here! I was in Prague for Flock…
LiteLLM: AI Gateway on Kubernetes and Metrics in VictoriaMetrics
In the first part – LiteLLM: AI Gateway for LLMs – features overview we got familiar with what LiteLLM can do in general – now we can run it in Kubernetes and connect clients. At…
LGTM Culture: When Code Review Becomes Theatre
LGTM culture is code review as theatre: rubber-stamp approvals and obligation nitpicks. Why teams drift into it, and how to make approval mean something.
PII guardrails for .NET applications - Part 2: Agent Framework agents
In part one of this little series I introduced TasmanianDevil, a standalone, offline PII detection and de-identification engine for .NET. We saw it on its own - detecting and validating PII,…
Data contracts anti-pattern #1: Contracts as documentation
Hello 👋 Hope you’ve had a good week! I’ve seen a lot of people succeed with data contracts, but I’ve also seen a lot of people struggle. So, over the next four weeks I’m going…
You probably don’t need a UUID
My troubles with record identifiers starts with a web site I developed, Eksi Sozluk. It's been one of the most popular Turkish web sites in the world for the last quarter century. When I first…
Lara Won’t Promise Not to Train on Your Translations
I almost shipped it. The integration was finished. Cattitude, our own CAT tool, had full support for Lara, the AI translation engine from Translated that is replacing the old ModernMT. The SDK was…
PII guardrails for .NET applications - Part 1: TasmanianDevil library
A few months ago I introduced AgentGuard, a library for declarative guardrails and safety controls for .NET AI agents. One of the rules it shipped with from day one was PII redaction, but back then…
A Year of testcontainers-go on Docker Hub
I am a core maintainer of testcontainers-go and a Docker employee. That overlap is what makes this post possible. As the maintainer I know exactly how the library identifies itself when it talks to a…
Design
Designs need to be well thought out. If you get it right, it is easy to scale, optimize and add features. Not sure about only downsides of only designing performant systems. Maybe it's hard to…
Sometimes the Cheap Model Costs More
I’ve been using an AI orchestration framework I built called Mozart.You can check it out here: https://github.com/jstuart0/mozart-orchestrationThe idea behind Mozart is pretty simple. Instead…
Configuring Copilot CLI Isolation via the GitHub Copilot SDK
In the previous post, we walked through local sandboxing in the Copilot CLI: enable it with /sandbox enable , tune filesystem and network rules through the TUI, and your agent's shell execution is…
The Thing We All Obviously Want
Generated by AI—notice the perspective. Over the past year, we have seen the rapid development of AI-assisted programming to an astounding degree. Even five years ago, fully-automated program…
Quickly apply LUTs (color grading) with ffmpeg
This is a quick post, mostly for my own reference. I've avoided LUTs and 'Log' video footage for years1, mostly because of the extra tiny bit of workflow involved. Like RAW photos, 'Log' footage…
Field notes on Mac OS 9.2, New World ROMs, and Apple Silicon
SheepShaver boots Mac OS 9 with a native JIT. Getting it on Apple Silicon? That took work. Full native 9.2? Even harder.
The Dottie Number
Once upon a time, goes the story, a lady named Dottie got bored and started playing with her calculator, pressing the cosine key over and over again. At first the numbers fluctuated wildly, but over…
Headcode started as a project to learn UK rail data
It now has eight live endpoints, a tiered pricing page and an alpha banner warning people the schemas might still move under them. None of that was the plan. The plan was to understand how UK rail…
Using Cursor in Xcode 27
import Image from '@components/Image.astro' Over the past few months, I have shifted most of the time I spend building features to Cursor when working on client projects, and only really switch back…
The forklift and stapler
Most developers have become pretty good at using AI, some reluctantly. We paste in an error and ask for an explanation. We ask for unit tests, a regex we will immediately regret, or a slightly less…
From Pixels to Tensors, Part 2: The 3D Graphics Pipeline
Part 1 describes how 2D graphics works. In summary, it can be reduced to two operations, rasterize and composite. Now I am curious about how 3D graphics works, and want to gradually work toward AI…
The essence of architectural work - Part 3
The essence of architectural work - Part 3 In the previous post, we discussed several architectural anti-patterns. We have seen that we are a lot more vulnerable to them if we do not understand why…
FreeBSD "Multi" Installer at BSDCan 2026
Posted on June 26, 2026 This is another post in the series “A Personal Multi Installer in Lua”. 3) FreeBSD “Multi” Installer at BSDCan 2026. <- This post 2) Proof of Concept for a “Multi”…
Formal proofs for distributed protocols with AI may be closer than you think
This text is artisanally typed using Das Keyboard, with occasional suggestions by Copilot (most of them ignored anyways). The figures are generated with ChatGPT 5.5. In November 2024, I wrote a blog…
Inside the Git Hooks: Tagging Every AI Agent Commit (Part 3)
Part 3 — the build for the lighter solution. How a set of git hooks stamps a session id on every commit an AI Agent makes, survives squash and rebase, and captures each push — all best-effort, all…
On failing at my first Kaggle competition (2/n)
In the first part, we discussed self play and the equilibrium our agent gets stuck in. In this part, we will talk about features that model takes as input, and how model uses them to learn…
My Second Brain Was Everywhere. My AI Couldn’t Get In.
My notes were on every device I own, but Claude couldn't reach them while I was on the go. So I built an MCP server to fix that.
Phil Burk: PortAudio, Android Audio, MIDI 2.0, HMSL, PlayStation Audio, JSyn & More!
From Z80 assembly to Android, and the web. redcircleIframe(); .redcircle-link:link {color: #ea404d;text-decoration: none;}.redcircle-link:hover {color: #ea404d;}.redcircle-link:active {color:…
What I'm working on: Building a Workflow
This is a working summary of things I’ve been working on to build a workflow for agentic development over the last 6 months. Agentic development will scale up all software development. I see two…
Sabbatical Diary: Weeks 35---38
Well. Apologies for another hiatus—that was a very busy few weeks. I’ll put to one side some personal matters I’ve had to deal with, and some external work that was quite interesting. Ph.D.…
LCD Controller Program Update
Around 18 years ago I made a program to control a "Cooltek" LCD display over the parallel port from a PC. Since parallel ports are hard to come by these days I had to make an update. I happened to…
Testing Android apps with Expo on physical devices
Learn how to connect your Android device via USB to your local Expo development server for reliable, production-like testing of your React Native apps.
Pragtical v3.12.4 Release
Pragtical v3.12.4 is out with Project Search view controls for plugins, a fix
Custom SRP 7.0.0 Unity 6.5
Version 7.0.0 of the Custom SRP project.
Reflecting to optimise
This is nothing to be proud of, but I have never really studied optimisation in depth. Oh sure, I know my Adam from my AdaGrad and I even used L-BFGS one time, but when people start talking about…
Kabbalah, Haskell, and the ST Monad
For the past year, I’ve been learning Kabbalah for the first time in my life. It has been a fascinating journey. I haven’t really shared much about it publicly, and I’m not sure whether I’m going to…
Lunch Talk Series: Swiss Army Django: Small Footprint ETL
A review of Noah Kantrowitz's DjangoCon US talk on doing more things within Django, avoiding external services.
TurboQuant on Windows and LM Studio 2026: Complete Setup Guide
Use TurboQuant-compatible GGUF models on Windows with LM Studio, Ollama for Windows, and llama.cpp. Covers hardware requirements, which models support TQ4_K_M, and the best current approximation…
My Engineering Manager README (2026 rewrite)
A Manager README is a good way to introduce yourself as an Engineering Manager. I first wrote one in 2021 — the act of writing it down taught me more about myself than the document ever taught anyone…
Episode 292: GPU MODE, PLs, Post AGI, Wingspan & Lawn Care
In this episode, Conor and Bryce chat about GPU MODE, programming languages, post AGI, Wingspan, lawn care and more!