gwaim: The Tool That Level 5 Needed
The Manual Pain The Level 5 workflow described in an upcoming post was a workflow that worked. Four git worktrees, four Warp panels, four Claude Code sessions. Each one on its own branch, its own…
Taming a 486MB Git Repo
I recently cloned a repository and noticed it was 486MB. The actual source code? About 6MB. That’s a 98.7% overhead. Here’s how I found the bloat and fixed it.
ESP32S3 mini
A quick port to support the ESP32S3 mini over Wifi. The pic below is a ESP32S3 debugging a bluepill board (still over wifi) Github page
Did I Just Accidentally Build a Memory Management System for Claude Code?
It has been one of those months where you fix something small and discover something big. The Story It’s a Tuesday afternoon. I’m updating a GitHub Actions workflow when Claude Code tells me…
Type Variances
The culprit I was minding my own business writing some type-annotated Python code when my type checker of trust did me dirty and nerd-sniped me. error: Return type "list[A]" of…
tags for rust
I use tags to navigate source code in vim. Here is how I set things up for generating tags for rust. If we take the advice from these two articles…
String Types For E2E Tests
Every individual item sold on Mercari.com has an id that looks like m<number>.
New Pelican Plugin: Obsidian-Style Callouts
New Pelican Plugin: Obsidian-Style Callouts Vibe-Coded Slop It should be noted, per the anti-clanker movement, there was little to no thought involved in this process. I had learned to use…
Vibe Coding From My Phone with OpenClaw
Wow, what a wild year it’s been! Claude Code was first released only a year ago , though it feels like it might have been a decade. The progress on LLM developer tooling has been unreal, and it…
migrated to lume, new page for tech resources
new page to the resources section was added for miscellaneous tech-related resources . mostly about linux, self hosting, learning programming, command line tools, that sort of thing. a small indie…
Infinite Lists in Lean
You might remember my post last year about lazy infinite lists in Lean, back when I didn’t know how to write Lean. I still don’t know how to write Lean, but today we’ll try…
Projects
Open-Source Projects I host my open-source projects on tangled.sh with own-hosted knot Also see my GitHub for older projects Small Tools Yeebike - Fastest way to find an e-bike around you (Youbike is…
DSPy + LiteLLM + ChatGPT: Xây Dựng Pipeline AI Thông Minh Hơn Năm 2026
Hết thời viết prompt thủ công rồi vá víu khi model thay đổi. Bài này hướng dẫn bạn kết hợp DSPy và LiteLLM để xây pipeline LLM có thể tối ưu prompt tự động, đổi model tùy ý — từ ChatGPT đến Ollama…
Friday Faves: Craft CMS
This week’s Friday Fave is for the web nerds out there. Many folks who makes web sites rely on content management systems to update their sites. (And some still make their sites with plain old HTML.…
SvelteKit and Cloudflare Compatibility Date after `2024-04-01`
Today, I needed to increase my compatibility_date for my Svelte project. I noticed, that when I ran the project locally with npx wrangler dev, that no POST requests worked any longer. There was a 405…
LLVM Adventures: Fuzzing Apache Modules
LLVM Adventures: Fuzzing Apache Modules.
The Load-Bearing Pipeline Was Human
A specification-to-code pipeline that worked for decades doesn't stop working because you swapped the executors; it stops working when you rip out the stages.
Migrating to PNPM
Advantages (as I see them). Quick start These are handy things… Gotchas Advantages (as I see them). It stores node_modules in a single place and references them, rather than having multiple copies of…
There Should be a [Connect with OpenClaw] button for SaaS
I keep thinking there should be a [Connect with OpenClaw] button for SaaS. A lot of SaaS apps want to do things on behalf of the user: create a cron send a reminder trigger a task run a background…
Maximally minimal view types
This blog post describes a maximally minimal proposal for view types . It comes out of a converastion at RustNation I had with lcnr and Jack Huey, where we talking about various improvements to the…
I Pruned Two Layers From a 30B Code Model and It Got 123% Better at Coding Benchmarks. Then I Tested It On Real Software Engineering Tasks.
..it got worse. But the full story is a bit more interesting than that. The Setup I have two projects that collided. Thunderdome is an agentic SWE benchmark I built that tests models on real…
You Don't Need OpenClaw (And Its Creator Would Probably Agree)
OpenClaw has 247K stars. Its creator started with a simple agent loop. You should too. Build the fundamentals before adopting the framework.
Week Notes - w12
Things I did Typed a lot on my new keyboard - MageGee MK-Star ! Created a new monitoring tool for work comparing two different systems and making sure they match and alert the team if not. It was…
Why subagents help: a 10-panel visual guide
Once you get past the basics with agents, context pollution and context rot start showing up. This ten-panel visual guide explains why subagents help.
𝗢𝗽𝗲𝗻-𝘀𝗼𝘂𝗿𝗰𝗲 𝗠𝗟 𝗵𝗼𝗺𝗲𝘄𝗼𝗿𝗸𝘀 𝘄𝗶𝘁𝗵 𝗮𝘂𝘁𝗼-𝘁𝗲𝘀𝘁𝘀 - 𝗳𝘂𝗻𝗱𝗮𝗺𝗲𝗻𝘁𝗮𝗹 𝗮𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺𝘀 𝗳𝗿𝗼𝗺 𝗳𝗶𝗿𝘀𝘁 𝗽𝗿𝗶𝗻𝗰𝗶𝗽𝗹𝗲𝘀
This year I’ve been designing homework assignments for an ML course at Skoltech (Russia’s answer to MIT/Caltech for science and technology). After bombing more job interviews than I care…
Automating my son's YouTube with Python and FFmpeg
My son Ben is 12. Back in August he decided he wanted to start a YouTube channel. We talked about what it could be and he landed on Premier League score predictions. Every gameweek he'd predict the…
Using AI to Contribute to Open Source
[This post is AI level 1: Human asked chatbot for ideas. Claude Opus was used primarily for review and ideation and I took some of its advice and a few (very few) of its words.] Like many open source…
Connecting Codex to Google Workspace via MCP
When you work with an AI coding agent like Codex, the real productivity gains come from letting it interact with the systems around your code — not just the code itself. Connecting Codex to Google…
Simple Sudoku Solvers SII, EIII: Forth
Simple Sudoku Solvers SII, EIII: Forth
Making Good PDFs from Scanned Documents
This is a quick post to document my personal workflow of producing nice PDF documents from scanned images. Some of my obligations and hobbies produce paper documents with no option for digital…
Agent Harness Engineering vs Context Engineering vs Prompt Engineering
If you are building agents in 2026, prompt engineering is still necessary, but it is no longer sufficient. The teams shipping reliable agents are working across three different layers: Prompt…
Adding a selftest for someone else's fix
Note: This will be a casual blog, so excuse my language. It’s mostly stuff for documentation (for my brain). The goal lore.kernel.org is the conversation I came across earlier today. I want to…
Paid Remote Research Engineer Internship: Exact Runtime ML / Problem-Shaped VMs
Paid remote internship focused on exact runtimes, local ML, document extraction, and public research-engineering.
creating a native-feeling neovim picker
preface Fuzzy searching in neovim has been a heavily debated topic for years. There were those we fought for telescope being merged into core (which fortunately did not happen), and those who felt…
Introducing fashion command-line tool
fashion is a Swift command-line interface to traverse a file hierarchy and compute or match popular hash digests. The project is hosted on GitHub and natively supports: CryptoKit hash functions:…
What I've Worked On at Stainless
At Stainless, I build compiler-like generators that transform API specifications into idiomatic client libraries that feel as though they were hand-written by a language expert who had the time to…
Android Enterprise App Development with Voice Coding
Accelerate enterprise Android app development using voice coding tools for security, compliance, and scalability.
Android Game Development with Voice Coding: Unity and Unreal
Accelerate Android game development using voice coding tools for Unity, Unreal Engine, and native Android game programming.
The Training Grounds: A Taxonomy of RL Environments for LLM Agents
The infrastructure that determines what your agent can actually learn - Model architecture gets all the attention. Post-training recipes follow close behind. The training environment — what the model…
Repositories, transactions, and unit of work in Go
Decoupling business logic from storage in Go, adding transaction support without leaking SQL details, and coordinating atomic writes across multiple repositories using a unit of work.
WebSockets Are Back. The Client Side needs more support.
Building a streaming LLM client pushed me to write the WebSocket library I wished existed.
The Math Behind the Yoga SVG
How simple trigonometry and CSS variables combine to create anatomically connected, fully animatable SVG stick figures for yoga.
Swift Algorithms - Apple’s Hidden Collection and Sequence APIs You Should Be Using
Swift’s standard library already gives us strong collection primitives. Yet many developers still write nested loops, temporary buffers, and…
My dad vibe-coded a thermostat UI in 12 hours
My dad is a tinkerer. He’s got a 3D printer, a CNC cutting machine, something to do with lasers, he’s good with electricity, … the whole deal. For the past year and a half,…
An Ode to Variable Names
I remember vividly, just a few years ago, walking out of an hour and a half long meeting, which at the onset we had hoped would lead to a big architectural decision, only to have decided on one…
11: Alerting & Service Level Objectives (SLOs)
How to define SLIs and SLOs for your services, configure symptom-based alerts in Grafana, and build error budget burn rate alerts that page you before users notice.
Tinkering
I love making incremental improvements to my website. All the changes I make to this website build up to what you see. This has me thinking that websites are both a place to reflect on, discuss, and…