Field notes

How we build and run software. Methods only, no client names.

2026
  • The tells turn over

    The words that marked model-written Korean in 2024 are falling in 2026 while a different set rises. Anything built on a fixed list of tells has a half-life.

    ai · llm · research

  • Compute the placebo floor first

    Any estimator that extrapolates a trend will return something. Running it on years where nothing happened is the cheapest test we know, and the one that most often kills the claim.

    research · statistics · method

  • Korean journal abstracts changed in late 2024

    We adapted excess-vocabulary measurement to Korean morphology, ran it over 398,296 abstracts, and found a register shift that starts in late 2024 and flattens in mid-2026.

    ai · llm · research

  • The multilingual cache tax

    Two field notes turned out to be the same inequality, so we wrote the paper, published the data, and stated plainly which of our own claims did not survive review.

    ai · llm · research

  • A planet in a browser tab

    Real satellite imagery, forty-six thousand city lights, and one line of spherical trigonometry that fixed the camera, in about 1.5 megabytes.

    webgl · graphics

  • We padded a prompt with junk to make it cheaper

    A prompt below the cache floor gets cheaper if you make it longer. We ran 500 graded tasks to find out whether the filler costs accuracy. It does not, and useful filler pays twice.

    ai · llm · evals

  • Design QA at 1:1

    Eyeballing a layout lies to you. We read computed styles off the live DOM, crop screenshots at full resolution, and let numbers referee the argument.

    design · qa

  • The cache discount has a floor

    Our Korean traffic was billed at a tenth of our English traffic for the same prompt. The pipeline was fine. English was the only language too short to cache.

    ai · llm · performance

  • Small models where they win

    A frontier model labels the dataset once. A small model serves the traffic forever. A confidence router decides who handles the 7% that are actually hard.

    ai · llm · performance

  • Trust, then verify, then verify again

    Generative systems fail politely: fluent, plausible, wrong. Between them and the outside world we run evidence gates, adversarial refuters, and a 3,900-case regression wall.

    ai · qa

  • Our AI coworkers run on files

    No vector database, no memory service. Agent memory is markdown with frontmatter, a 40-line index, and hard line caps. Boring on purpose.

    ai · agents

2025
  • The night shift is a fleet of models

    Planners plan, workers execute, verifiers attack, and a gate with a whitelist and a ledger stands between all of them and the outside world.

    ai · agents · ops

  • Evals are the unit tests of prompts

    Every prompt change ships against a golden set. Every incident becomes a case. And the LLM judging the outputs is treated as the biased witness it is.

    ai · evals

  • Screenshots or it didn't happen

    Build passing is not done. Our definition of done is a full-resolution capture of the deployed page, triaged by a vision model, signed off by a human.

    qa · ai

  • Grep first, embed when it earns it

    We run retrieval two opposite ways: plain files and grep for agent memory, hybrid embeddings for user-facing search. Both decisions came from measurements, not fashion.

    ai · search

  • Write prompts for the cache, not the reader

    Prefix caching bills repeated tokens at a fraction of the price. Once you know that, prompt layout stops being a writing problem and becomes a systems problem.

    ai · llm · performance

  • An agent is a while loop with taste

    Strip the frameworks away and a production agent is about eighty lines. Ours have outlived four model generations without structural change.

    ai · agents

  • Structured output is a contract, not a request

    A language model returns prose. Production systems consume JSON. The boundary between the two is a validator that has never heard of AI.

    ai · llm

  • One box is enough

    Why we run dozens of production sites on a single dedicated server, and the three config blocks that make it survivable.

    infra · ops