Blog

Technical writing on distributed systems, infrastructure, and data platforms. Real projects, real gotchas.

Every Improvement I Made to My 1.7B Agent Made It Worse

Four attempts to make a small tool-calling agent smarter, three of which made it measurably dumber. Grounding cost website coverage, multi-search cost submit rate. The design rule that fell out: for a 1.7B, simple and committed beats sophisticated.

I Wrote a Self-Healing Script That Could Strand the Machines It Healed

Renumbering a remote site's subnet with no console and no one on site. Seven machines recovered, three went dark — and the failure I blamed on a switch was two bugs in my own safety net.

Two of My Own Alert Rules Were Wrong. Here Is How I Found Out.

A job had been failing in a loop for a week and every dashboard was green. One rule fired on nine idle machines; the other could not catch the one real failure. An alert rule you have never seen fire on a real failure is a decoration.

A 2012 Mac Mini Beats a Xeon Per Core. That Changed How I Schedule Jobs.

Twelve workers, 76 threads and 124 GB assembled from nine second-hand Mac minis and a used PowerEdge. Then I benchmarked them: the Xeon lost per core to a fourteen-year-old desktop, which inverted how I place jobs.

Changing a Live Server's Address Changes Its Identity

One line in a template took down a Nomad control plane and left a scar that survived the rollback: 1,450 conflicting-address errors a day, and a quorum silently depending on a VPN daemon. What did not fix it, what did, and the config split that prevents it.

Kafka Data Flow in a DePIN Pipeline

How QuackNet routes crowdsourced network scan data through Kafka KRaft — partitioning strategy, three independent consumer groups (ClickHouse, fraud detection, push alerts), and the dead-letter queue pattern that keeps bad data out of production.

Your Codebase Is Lying to You. Here's How to Catch It.

90% of linters catch style. ArchDogma catches the moment your codebase becomes a time bomb — with real postmortems, not rule IDs. The open-source scanner + paid Pro Kit: consultations, CI templates, and a catalog of 14 real incidents.

ArchDogma v0.2.0: Scan Your Whole Project, Not Just One File

archdogma scan lands in v0.2.0 — a whole-project scanner that walks every .py file, runs all 11 Tier 1 detectors, and reports findings with file:line context. CI integration, JSON output, 300 tests.

ArchDogma: Python Architecture Linting That Doesn't Lie

ArchDogma v0.1.0 is now on PyPI. A static analysis tool that catches architectural anti-patterns in Python — not style, not formatting, but structure. 11 detectors, 281 tests, honest about what it can't do.

I Replaced My Team with 3 AI Agents. Here's the Architecture.

How I built a persistent multi-agent AI system: Lobster (OpenClaw/Claude), Hermes (CLI agent), and Paperclip as the control plane. Heartbeat protocol, optimistic checkout locking, cross-agent delegation, and rolling memory that survives session restarts.

I Write Electronic Music in Python: No DAW, No Samples, Just Math

How I generate techno and ambient tracks using pure NumPy and SciPy — no DAW, no samples, no plugins. Every kick drum, synth wave, and chord progression computed from scratch. Plus the WAV→MP3→Telegram automated delivery pipeline.

How I Built This Portfolio: Zero Dependencies, 11 Architecture Layers

Why I chose vanilla JS over frameworks, how DDD bounded contexts keep the code sane, and the EventBus pattern that wires it all together. Three.js particles, WebLLM chat, 6-layer security — with zero npm dependencies and no build step.

What I Claimed About Rust/WASM, and What I Actually Measured

I claimed 6.3 KB of Rust/WASM at 50,000 scores per second, 10× faster than JavaScript. None of it shipped any WebAssembly. Here is the withdrawal, the 218 bytes of wasm I then wrote by hand with no toolchain, and the numbers that are actually true.

Kafka KRaft for Solo Projects

Why I chose Kafka for a real-time scan ingestion pipeline in an independent DePIN project, how KRaft mode replaces ZooKeeper, and the gotchas I learned deploying it locally. Single-process broker+controller, 6-partition topics, and the context.Background() bug that broke async Kafka writes.

Running 3.8B Models on 8GB RAM

Microsoft's Phi-4-mini: a 3.8B parameter language model that fits in your laptop. How MLX framework on Apple Silicon makes local AI practical, the tradeoffs of 4-bit quantization, and when to ship models locally vs call APIs. Includes actual benchmarks and the 7-weapon concept for AI reasoning.

ClickHouse vs TimescaleDB for Geospatial Data

Why I'm running both PostgreSQL + ClickHouse in production instead of choosing one. ClickHouse excels at analytics with built-in H3 functions and materialized views; TimescaleDB fits PostgreSQL-heavy workflows better. How to pick, with real numbers on query performance and storage efficiency.

Prompting Without Pain: What Actually Works in March 2026

An investigation into why certain prompting patterns work, grounded in vector space intuition. 20 battle-tested hacks for Claude, Grok Imagine, and ChatGPT — from positive framing and XML tags to camera terms for image-to-video. Plus the coding prompt template that shipped 30+ sessions of QuackNet.

30 Sessions, 1 Developer, 0 Employees: Building a Full-Stack DePIN Platform with Claude

The honest story of building QuackNet — a full-stack DePIN platform with Flutter, Go, Kafka, ClickHouse, and Solana — across 30 dev sessions with Claude as AI co-developer. What worked, what broke, and what it means for independent development.

I Benchmarked 7 On-Device LLMs So You Don't Have To

Phi-4-mini, Qwen2.5-3B, Llama-3.2-3B, SmolLM2, Gemma-2, Mistral-7B, and TinyLlama — tested on an M1 with 8GB RAM. Tokens/sec, RAM usage, quality scores, and the MCTS trick that makes a 3.8B model outperform a 7B.

DePIN in 2026: Who Actually Buys Crowdsourced Network Data?

An investigation into the 4 real buyer segments for crowdsourced network intelligence: telcos, CDN providers, smart cities, and regulators. What Helium, Hivemapper, and DIMO got right (and wrong), and why most DePIN tokens are speculation, not revenue.

5 Things Nobody Tells You About Solana Token-2022

After deploying 5 Anchor programs to devnet, here are the gotchas: Token-2022 wallet compatibility gaps, PDA debugging nightmares, Anchor IDL drift, transfer fee complexity, and the real cost of on-chain storage. With Rust code snippets.