ABOUT
kaguc ☕
Writes on capital, code, mathematics, and language.
Writes slowly, when something seems worth saying.
Two lines of writing live here.
Engineering analysis — architecture and the trade-offs under it, with the measurements that settle them. Each piece tries to be transferable rather than autobiographical: name the constraint, name the threshold, then decide. Every one of them says where it stops applying.
Essays — slower pieces on capital, mathematics, and language, written when something seems worth saying.
If a sentence here stays with you, the easiest thing is to write back. I read every email.
// WRITTEN BY KAGUC
- 2026
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →
- 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 →