My Score Said None for Three Weeks and I Believed a Number I Made Up
For three weeks I thought my agent was rated around 709. It was 784.9. The number had been unavailable the entire time and my own code had quietly replaced it with a guess I stopped questioning.
Using the API server proxy to bypass network policies
I’ve been doing some work for an upcoming talk on Kubernetes Multi-tenancy security, and as part of that I was thinking about one of my favourite topics in Kubernetes security, SSRF. As I was doing…
I'm making CalAction free to use
Making CalAction free to use for everyone and moving to a donation model.
llama.cpp: Metrics and Monitoring with VictoriaMetrics
We have a server where we’re going to run self-hosted LLMs. We spent quite a while choosing what exactly to use for running the models – vLLM, SGLang, or llama.cpp, and eventually settled…
Coding up a circular buffer with Jez
More coding with Jez and Andy. We're continuing working on our gunzip clone: we know we will need to be able to look back while we are encoding at recently-written bytes, so this time we're writing a…
Building the Cockpit — Thursday Chaos to Console-Born
A Thursday where the platform was already noisy before the console existed: vLLM admission failures, indexer livelock, a retired arch-review pipeline, YouTube ingestion, frontmatter corruption, and…
Quick impressions: A week of using Codex more than Claude
Claude goes above and beyond what is asked and guesses what you might want. Codex does what you tell it and stops at the first sign that it might be done. Ten impressions from a week of using Codex…
Ghostty Vs. iTerm2 For Developers: Which Terminal Workflow Fits Your Work?
Choose between Ghostty and iTerm2 by comparing the terminal responsibilities, compatibility needs, and migration cost that shape your daily development workflow.
Systems Engineering in the AI Era
LLM coding has become a popular and powerful way to build software, but programmers are struggling with the resulting shift in software engineering. They must review large amounts of generated code,…
Building an AI Hive Mind to Understand Systems as a Manager
I've built a 'hive mind' of AI agents over dozens of repositories to surface organisational and tacit knowledge without gathering a room full of engineers.
free AI api
Can I generate an api key with free tier chatgpt account? Yes, you can technically generate an API key on the OpenAI Platform with a basic account, but the API […]
How to visualize millions of parcels on a map
If you follow me on any of my social media channels you’ve likely seen some of my “mapping millions of data points” posts. A few of these examples have covered statewide parcel data. In the…
GitHub's growth
From GitHub’s blog post, The August 17 outage, and the work ahead: Since April, monthly commits have grown from 1.4 billion to 2.9 billion. Holy shit. That doesn’t look sustainable. And…
What to see at Oredev 2026
Oredev is an awesome conference I really enjoy. This will be my fourth year. I have had the fortune of going as a speaker and every year I sift through the probably very nice Java and .Net talks for…
Name My Color is now framework free!
TL;DR: I rewrote Name My Color to use Web Components instead of React! My anti-web framework kick continues; after using Web Components for the baseball triple crown tracker, I’ve been hoping…
Millenaire Magics Beta
So, I’ve just released the second beta of my Millénaire Magics modpack for Minecraft 1.21.1. This is by far the most hours I’ve put into a personal project, what with the multiple custom…
My Home Office.
Abstract. I document my home office setup — the physical workstations, networking gear, and creative tools I rely on every day to build, test, and deploy software as a solo developer. Each piece of ha
MDX Syntax Highlighting in NixVim
How to get syntax highlighting for MDX files working in Neovim using NixVim.
Porting Nomi from SwiftUI to Jetpack Compose in under two hours
An AI coding agent turned a 10,500-line SwiftUI app into a fully native Android app — same backend, same UX, Material Design throughout. Here is what the port decided, what it deliberately did not…
Tutorial Videos - Automated
How I generate PAC Hub training videos with Playwright and Grok TTS, and why keeping them current costs pennies.
Single file apps with Gleam and Bun
Build single file executables in Gleam, bundled and run with Bun
I Let an Uncensored AI Hunt Ox Alpha. It Found GLM-5.
An autonomous Qwen3.8 red-team agent, 600+ calls, 13.5M prompt tokens, and two emoji: how OpenCode's secret model led me straight to Z.ai's GLM-5 generation.
3.41 Metaheuristics for Rule Optimization — With Diversity as the Guardrail
Four optimizers, 31 seeds, one BTC rule set. The useful output is not which one won, it is that Differential Evolution's population stayed 82% scattered after 1000 generations.
Gameboy Emulator Created While Traveling
Go to: https://kobolt.github.io/article-283.html
A backtest that cheats off tomorrow won't fail code review. So I fired a spike into the future
The scariest bug in a backtest (the thing that estimates a strategy's returns on past price moves) isn't a crash. It's accidentally using tomorrow's price. It's called lookahead bias, and if you let…
Style guide: every element this site can set
Every block and inline element build.py can render, in one page, so a regression in style.css or the markdown pipeline is visible at a glance.
Gameboy Emulator Created While Traveling
During a recent trip I worked on a Gameboy emulator using my 14 year old Asus Zenbok UX31A, using a limited set of tools and my experience from earlier emulator developments. Read the full journal…
Slop Debt
Tech debt has rules. You cut a corner to ship on time, you write a comment that says TODO fix this, and six months later someone pays it down. It is annoying but it is bounded. A senior engineer can…
metro.gif 2.0 in the making
Plotting started in October 2025 and came with quite some hiccups and challenges along the way. But now it's almost here... Just a few more days. I promise. #madewithrstr
Two questions macOS should answer — lsaudio and lsusd
Some tools begin with a roadmap. Others begin with a question asked often enough that irritation wins. At my desk, two questions kept coming back: What is making that sound? What exactly is connected…
Atlas at War: A Conquest Game on Real Borders
A short write-up about Atlas at War, a turn-based conquest game where the board is not drawn by hand but built from real country borders returned by the MapJSON API.
AWS Backups for Everyone
A few days ago, I was poking around AWS Organizations and came across backup policies. I’ve written plenty of backup plans and schedules over the years, but I didn’t realize I could roll them out…
Learning how to extract parts of a string
This week I took time to re-read The Programmer’s Brain by Felienne Hermans. Among the many gems one idea that stuck with me is that not learning how to do something and looking it up every…
Reading notes on The Programmer's Brain by Felienne Hermans
Prompted (😉) by some AI dread, I decided to go back to some basics and re-read The Programmer’s Brain by Felienne Hermans. Felienne Hermans’ work caught my attention when she gave a…
Kiro IDE + WSL2: Fixing the Agent Shell Execution Layer
A practical guide to fixing Kiro IDE's agent shell execution in WSL2 — adding Linux terminal profiles, shell integration scripts, and steering context for reliable AI agent interactions on Ubuntu…
Programming Language Semantics and Memory Safety
Have you ever wondered what a programming language actually is ? People often say that a programming language is just a tool we use to tell computers what to do. I really don't like this metaphor.…
Agent assisted Changelog - 34/52
One week since the last changelog. I am going to enjoy that sentence before the streak becomes statistically meaningful. Last week was about getting agents into real machines. This week was about…
Scott Watermasysk - August 21, 2026
Of all the fun things I have built with AI this year, the ones I use the most are Muv(.ing) and Stooges(.dev). Muv lets you know if you are actually moving today (having real activity). No need to…
Remotely unlocking electric scooters
How subdomain recon, WordPress user enumeration, and a brute force led to admin access and remotely unlocking scooters.
Go 1.27's Runtime and Compiler: A Buffer Removed, Labels Added, Allocation Sped Up
go1.27rc1 removes the last escape hatch back to buffered timer channels, puts pprof labels in crash tracebacks by default, and speeds up small allocations by up to 39%. I benchmarked all three and…
Building TribeMarkets with AI: Architecture and Self-Fixing Production
I have been building as a small but serious experiment: a private, play-money prediction-market platform where communities create Tribes, open markets, stake internal credits, and resolve outcomes.…
VM Design > Ghost Variables
When you build your own programming language from scratch, your test suite is your mirror. Everything works in isolated unit tests until you write a classic...
VM 设计 > 幽灵变量
当你从零开始构建自己的编程语言时,测试套件就是你的镜子。在编写像计算第 10 个斐波那契数这样的经典基准测试之前,一切在独立的单元测试中似乎都能正常运行——然后解释器要么立刻崩溃,要么输出一个错得理直气壮的结果。
How juniors learn the trade when an agent writes the code
In my last post I described how we structure delivery so that human judgement is spent where it matters, and I left one problem open: that model assumes seasoned judgement at the gates, and I could…
Quick Tour of Postgres Logical Replication - Misc Tips and Tricks (Part 4)
Part 4 --> This post was written for Blaugust 2026 Some misc tips and tricks, plus some things I found annoying while experimenting with this that didn’t really fit into the previous blog posts.…
Good Rules To Follow For Agentic Coding
I read Peter Bloem's post about the ten rules for keeping your critical thinking while using AI to code. I don't follow all of them but it's a great list to keep in mind so you don't forget how to…
Why Your Next API Call Should Come From an Agent, Not a Postman Collection
I see value shifting from maintaining Postman collections to letting agents derive API calls from intent, contracts, and live responses.
Give your agent a sandbox
An LLM that writes code is only useful if it can run the code. Until it runs, everything the model produced is a guess with good syntax highlighting. The usual way to close that gap is to give the…
What Else Should I Read?
I would be very grateful for pointers to other recent empirical studies of the impact of AI on programming education that are more rigorous than the gushing slop being tossed around on LinkedIn. I’d…
Enum in Typescript is leaky
Enums exist. They’re not evil. But if you’ve written a TypeScript enum, you’ve already lost the argument. Take a look a the following example: