The barcode-first pivot
Shipping-label recognition kept tripping on OCR character confusion — 0/O, 1/I, the classic unwinnable cases. The fix was not to fight the recognizer's accuracy; it was to change what gets recognized: tracking numbers live in the barcode too, and a barcode is machine-native — so the pipeline flipped to barcode-first, OCR as fallback (2025-08-08, issue #50).
The later numbers vindicate it: OCR per-attempt success sits at 94% as the fallback, and scan reliability stopped being the funnel's problem (route-to-first-scan-cliff — the cliff is upstream of scanning, not in it).
The shape of the move: when a component's failure mode is intrinsic (visually confusable glyphs), don't tune the component — switch to a channel where the failure mode doesn't exist. Same season, same discipline: #52 added the shipping-company layer under routes; #47 improved load-car discoverability — solo period, numbered issues throughout.
Postscript (2026-09). The second paragraph did not survive the field. Once the AUTO (automatic capture mode) gate got a witness and that witness learned the detector's verdict, the cliff moved back inside the scanner: most gate timeouts had never decoded a barcode at all, because the Android analysis frame had been 640×480 by default. The pivot's logic (switch the channel) still stands; the premise "scan reliability solved" is revised in the-cliff-was-in-the-scanner.
Interview archetype: "tell me about a problem you couldn't fix" — I didn't fix it; I made it not the problem.