A native module can compile perfectly and still be unable to do its job. That is not a contradiction. The module may need a foreground Android Activity to open a system-owned surface. The application may declare a framework feature in its build settings while the running process never activates it. Both failures are…
EN2026-09-06
“Do not commit generated files” is one of those rules that becomes true before anyone finishes saying it. Usually, it is right. Build output is reproducible. It is noisy in diffs. It invites merge conflicts. It makes a repository look like someone spilled a dist/ directory on the floor and quietly walked away. Then a…
EN2026-09-05
An AI can turn a page of notes into a convincing paragraph surprisingly quickly. That is not the hard part. The hard part is answering a future question: where did this claim come from, who owns the decision to publish it, and what happens when the source changes next week? “The model saw it in the prompt” is not a…
EN2026-09-03
The most dangerous screen in a classification product is often the tidiest one. Every item has a label. Every cluster has a name. The number of groups matches the number someone expected. Nothing is left over. It looks finished. It may only be hiding the information that would have told a reviewer to stop. This…
EN2026-09-02
The confusing bug was not a broken button. It was a feature that worked exactly where the architecture allowed it, and nowhere the user expected it. A Figma plugin can look like one small product: pick a node, generate some code, maybe refine it, maybe copy it. Under the hood, it can be two products with different…
EN2026-09-01
I ran a Git verification command. It printed nothing. It exited zero. I recorded the two worktrees as converged. Then I ran the same verification again. And again. Three clean results later, I discovered the command had never matched a file. The repository was not clean. The selector was blind. The files lived under…
EN2026-08-30
Four localization gates were green. The English screen was still wrong. The key existed. The value was non-empty. The interpolation compiled. The test suite passed. The navigation title still ended in an ellipsis because the correct English phrase did not fit the toolbar. Nothing in the gate had lied. I had asked it…
I had a content-negotiation test that passed. Then I asked production the same question. Production gave me the right body and the wrong evidence. That is an uncomfortable category of bug because the application appears to work. A client asking for HTML receives HTML. A client asking for Markdown receives Markdown. An…
EN2026-08-29
My renderer produced the right line. My CLI tried to write it. The output stream rejected it. Then the next state report arrived, the renderer produced the same line again, and the CLI skipped it as a duplicate. Nothing had been duplicated. The line had never made it out. This is the small, unpleasant gap between…
I had a StoreKit listener. I had an AsyncStream. I had a SwiftUI .task consuming that stream. I also had a transaction result that vanished between all three. Nothing crashed. No continuation threw an error. The purchase was settled. The stream consumer was about to begin. It was just not there yet. That last word did…
EN2026-08-28
There is a wonderfully dangerous moment in cross-platform work. One test produces the same hash you expected. The hexadecimal string sits there looking official. It is fixed-width. It has numbers and letters. It practically arrives wearing a tiny lab coat. Then the sentence grows. “The snapshot hash matched” becomes…
EN2026-08-27
My game engine knew that one piece had moved, another had been pushed, a tile had cracked, and perhaps somebody had left the board at speed. The Flutter UI knew that the board looked different now. That left a tempting little gap. The UI could compare the old board with the new one, infer what probably happened, and…
Follow via RSS or receive new posts by email.