The Cache That Cancels Your Improvement

A batch job matches free-text line items against a large product catalogue. Supplier wording never matches catalogue wording, so it runs a cascade — remembered aliases, then embedded codes, then exact matches, then fuzzy retrieval, and finally one language-model call to adjudicate the survivors. That last step costs money, so results are cached. I improved the text normalisation feeding the cascade. Tested it properly: extracted the production matching code, ran it against the real catalogue, confirmed zero previously working matches broke and roughly 230 previously failing lines now cleared the acceptance gate. ...

August 29, 2026 · 4 min · Leandro Garcia

The 20 cm Cable

A Raspberry Pi 5 with an OAK-D Pro depth camera bolted to it, recording material on a conveyor belt. First boot on the rig: hard crash within minutes. vcgencmd get_throttled returned 0x50000, the journal had fourteen Undervoltage detected! lines, the USB bus was dead — no camera, no tag reader — and the capture service was in a reset loop. Two days of bench work later the fix was a 20 cm cable. Getting there went through two hypotheses that were both partly right and individually wrong, and ended somewhere more useful than a culprit: an equation with about 0.3 V of headroom in it. ...

August 16, 2026 · 8 min · Leandro Garcia