2026
Aug 29
When to adopt the heavy machinery: thresholds, not opinions
"Adopt it when a measurement demands it" is useless until you name the measurement, the threshold, and the device you measured on. Here are …
10 min read
#Engineering
→ Aug 28
A reference design: quotes and watchlist MVP in Flutter
A concrete, buildable architecture for a small team — what to build, in what order, what to deliberately not build, and the measured trigger …
5 min read
#Engineering
→ Aug 28
Channels, Pigeon, and FFI: crossing to native without paying per tick
Flutter offers three ways to reach native code, with different costs and different failure modes. Picking correctly is mostly about one …
6 min read
#Engineering
→ Aug 28
Charts in Flutter: custom painting that holds 60fps
A candlestick chart is the one screen where the widget tree is the wrong tool. Building it well comes down to three moves: paint instead of …
6 min read
#Engineering
→ Aug 28
Flutter project structure: packages, boundaries, and add-to-app
How to lay out a Flutter codebase so boundaries are enforced rather than suggested — a package per feature, a dependency rule a tool can …
6 min read
#Engineering
→ Aug 28
Flutter under a firehose: making rebuild scope match change scope
A quote list that updates hundreds of times a second will destroy a Flutter app built the ordinary way. The fix isn't a faster state …
6 min read
#Engineering
→ Aug 28
Local-first data: snapshots, deltas, and the two kinds of state
Most sync problems get hard because two kinds of data with opposite properties are pushed through one mechanism. Separate the slow-changing …
6 min read
#Engineering
→ Aug 28
Modularity and migration: cutting boundaries that survive
Module boundaries end up mirroring your org chart whether you plan them or not. The useful criterion isn't layers or file types — it's …
6 min read
#Engineering
→ Aug 28
Order reliability: idempotency, unknown states, and reconciliation
Exactly-once delivery does not exist. For an irreversible action like an order, that impossibility forces a specific design: a key minted …
6 min read
#Engineering
→ Aug 28
Real-time data pipelines: push, backpressure, and conflation
A price feed is not a fast API. It is an unbounded stream whose consumer is slower than its producer, which makes backpressure the central …
7 min read
#Engineering
→ Aug 28
Shipping a database with your Flutter app: offline catalogs and instant search
How to put a large read-only catalog on the device and search it instantly: bundling a prebuilt SQLite file as an asset, keeping data …
5 min read
#Engineering
→ Aug 28
The client security model: an input, never an authority
Every control you ship to a device you don't own can be removed. That single fact settles most mobile security questions: client checks buy …
7 min read
#Engineering
→ Aug 28
The cross-platform boundary: share what must not diverge
"Which cross-platform framework" is the wrong first question. The right one is which layers must be identical on both platforms — because …
6 min read
#Engineering
→ Aug 28
Trading app architecture: six constraints and what they force
A trading client's architecture is mostly settled before you choose a stack — by data rate, irreversibility, catalog size, platform count, …
6 min read
#Engineering
→ Jul 29
27 days of AI-assisted development: a retrospective in numbers
One person plus a coding agent, 27 days: 94 conversation-level devlogs, a 28-module / 8,352-line backend plus a desktop client, 351 tests, a …
7 min read
#Engineering
→ Jul 29
Controlled revision in reflection loops
The draft → self-revise × N reflection loop often makes documents worse: full-rewrite revision regresses 16–27% of already-covered content …
11 min read
#Engineering
→ Jul 29
Distilling judgment, not structure: a controlled experiment
Two ways to distill expert writing into a reusable skill: extract the structural template (what to write) or the judgment logic (why it is …
9 min read
#Engineering
→ Jul 29
Document versioning and scoped editing
A document an AI rewrites over and over needs a data model that makes every version recoverable and every edit rejectable. This article …
11 min read
#Engineering
→ Jul 29
Executing model-generated code: a two-layer sandbox
Letting an LLM write data-plotting code and executing it (the Code Interpreter pattern) means shipping an RCE entry point: the model …
8 min read
#Engineering
→ Jul 29
From chat to agent: tool loops and collapse breakers
Give a model a tool set and a loop and it becomes an agent — along with failure classes chat applications never see: path escapes, unbounded …
10 min read
#Engineering
→ Jul 29
Making model output usable: sanitizing and automatic repair
The model returns LaTeX that looks perfectly correct — and xelatex fails with no legal \end found. Using real debugging chains from …
9 min read
#Engineering
→ Jul 29
Multi-agent adversarial review as an engineering practice
Split 'finding problems' and 'verifying problems' into two adversarial stages: N auditors search in parallel, one dimension each, producing …
9 min read
#Engineering
→ Jul 29
Prompt assembly as engineering: layering, contamination, and trimming
A prompt is not a string; it is a build artifact with a layered structure, real incidents, and a need for regression protection. Drawing on …
10 min read
#Engineering
→ Jul 29
The deterministic boundary: a first principle for LLM application architecture
LLMs are probabilistic components; production applications need engineering guarantees. This article states a field-tested architectural …
9 min read
#Engineering
→ Jul 29
The testing pyramid for LLM applications: evals, not assertions
Non-deterministic output defeats exact-value assertions. This article presents a four-layer testing pyramid — zero-LLM unit tests, …
10 min read
#Engineering
→ Jul 29
The token economics of LLM applications
Cost is the first real architectural constraint an LLM application hits. Starting from a precise ledger of a 'fix the keywords' request that …
7 min read
#Engineering
→ Jul 29
Validity engineering for LLM-as-judge
Before letting a model act as judge, prove the judge is trustworthy. A complete validity-engineering pipeline with first-hand data: …
9 min read
#Engineering
→ Jul 29
Wiring external signals into the loop: compile-and-repair
Run generated LaTeX through a real compiler and feed the errors back to the model — on tasks where errors are hard to self-detect, an …
9 min read
#Engineering
→ Jun 03
Building is the most respectable way to procrastinate
There is a kind of work that feels exactly like progress and is, in fact, the most expensive way to avoid it. It ships, it has commits, and …
7 min read
#Systems
→ Jun 03
Survival is a constraint, compounding is the objective
Reading is long-term. So is building something and putting it out. So is earning some cash first. When every option is defensible, judgment …
5 min read
#Systems
→ Jun 03
Why building substitutes for progress: a first-principles analysis
The companion essay asserted that building disguises avoidance as progress. This one derives it — from five premises that are hard to deny — …
9 min read
#Systems
→ May 12
Why real learning is reconstruction, not input
We don't absorb knowledge. We rebuild it — piece by piece — in the mind. The illusion of input is the deepest failure mode of modern …
2 min read
#Learning
→ May 02
AI makes personal writing more valuable, not less
In a world of perfect output, process, perspective, and judgment become rare. The thing AI cannot give you is the only thing worth giving …
2 min read
#AI
→ Apr 20
What the Ising model teaches about complexity
A simple model with rich behavior — and a lesson in emergence that transfers to markets, opinions, and any system of locally-interacting …
3 min read
#Mathematics
→ Mar 22
Investing is not prediction, but understanding constraints
Durable results come from knowing the game, not forecasting the score. A short essay on why constraints, not goals, define every system …
3 min read
#Investing
→ Feb 14
On observation as a craft
Notes from a year of trying to look at things — at code, at meetings, at sentences — without immediately reaching for an interpretation.
3 min read
#Observation
→