Production case study
A barcode scanner that could survive the real world
At Limpidius, I replaced a paid browser scanning SDK with an in-house Angular library for retail teams using ordinary phones in stores and warehouses.
- ~3,000
- scans per day in production
- 2 threads
- camera and decoding kept apart
- 0
- native app installs required

In the field
The library runs in an ordinary browser tab on store phones: no native install, no dedicated hardware. Camera capture stays on the main thread; decoding happens in a worker.
01
The system
The browser captures camera frames on the main thread and transfers them to a Web Worker. WebGL handles preprocessing, while ZBar and region-of-interest detection run through WebAssembly. Sharpness gating rejects poor frames early, and a result is confirmed across multiple frames before it reaches the host application.
02
The bug that mattered
Android worked. iOS did not. Safari exposed camera dimensions in a different orientation from the pixels arriving in the worker, so the scanner was cropping the wrong part of the frame. I traced the display, corrected-frame, and raw-sensor coordinate spaces, then fixed the crop mapping and delayed startup until the host container had real dimensions.
03
Making performance measurable
Once the scanner was live, I built the telemetry path behind it: validated session data moved from the browser to a NestJS service, BigQuery, and Grafana. The resulting dashboard gave the team visibility into success rates, device failures, scan duration, and manual-entry recovery instead of relying on anecdotes.
Outcome
The library replaced the commercial dependency and shipped to production across retail tenants. The work combined performance engineering, device-level debugging, and the judgment to measure whether the system was actually helping users.