Writing
RSSEssays on this site
95% Less Water Is a Control Problem
Vertical farming's sustainability promises, 95% less water, zero pesticide, eight times the yield, are controlled rather than grown. What a TÜBİTAK-funded project's committed targets taught me about where the climate value of agtech lives: in the software layer holding the set points.
The Controller You Can Read
Inside a sealed vertical farm with no logged history, I chose fuzzy logic over a learned model, because a control decision you cannot explain is a crop you cannot diagnose. When rules beat models, why traceability was the deciding property, and the condition under which the choice expires.
The Hardest Part of a Proactive Assistant Is Knowing When Not to Speak
A proactive assistant pays far more for a bad interruption than it earns from a good one, so suppression deserves to be architecture rather than a threshold. What I built instead: one delivery gate, twelve ordered checks, and every rejection logged with its reason.
A Token Budget Is a Product Decision
Every model call has a fixed budget and there is always more relevant material than fits. What a system leaves out is a product choice, so the five-layer allocator I built treats it as a declared policy per use case instead of the tail of a slice.
Selected writing elsewhere
I wrote a linter for AI-writing tells. It gave one of my own READMEs a C.
The ai-slop-linter tool: rule-based detectors for the tells that mark machine-written prose, run against my own repositories first, with what the grade cannot tell you printed alongside it.
(opens in a new tab)Who really owns this code? A git blame sampler you can run in one command
The surviving-lines tool, published on npm: share of surviving lines next to commit share over a deterministic file sample, with the caveats printed under every table.
(opens in a new tab)