Hamza El Hajjaji
Founder and developer of FlashScan Pro — author of this blog's guides and technical articles.
Who am I?
I'm an independent developer publishing under the name TechFlare. I built FlashScan Pro, the Android appfor scanning and generating QR codes, and then this web version — which reuses the same engine and the same privacy rules: everything happens on your device, no image is ever sent to a server.
I write most of this blog's articles: usage tutorials, guides on barcode formats (QR, EAN-13, Code 128…), privacy topics and scan-API comparisons.
How articles are written and verified
Every article starts from primary sources: official specifications (QR CodeISO/IEC 18004, GS1 standards for barcodes), browser API documentation (BarcodeDetector, WebCodecs, getUserMedia) and theZXing engine used by the app.
- Described behaviors are tested on real devices (Android, iOS, desktop).
- Examples and edge cases come from the app's code and its test suite, not from guesswork.
- Articles are reviewed before publication and the last-review date is shown at the top of each one.
Corrections and updates
Found an error, an ambiguous passage, outdated information? Write tocontact@techflare.app with the subject "Blog correction" — factual feedback is integrated quickly and the update date is reset. See also theabout page.
My articles
- Barcodes and inventory: a simple workflow
- How to scan a barcode from a photo
- Scanning a QR code in low light
- QR codes with glare: how to fix the scan
- Scanning a blurry QR code: what can still work
- How to scan a QR code from a screenshot
- Camera permissions and browser QR scanners
- QR code redirects: how to check the destination
- Short URLs in QR codes: benefits and risks
- Can a static QR code expire?
- QR code or NFC: which technology should you choose?
- QR codes and emergency information at school
- QR codes for asset inventory
- QR codes for employee onboarding
- QR codes for warehouse shelves
- QR codes on warranty cards
- QR codes for libraries: uses and limits
- QR codes for maintenance logs
- QR codes on product packaging
- QR codes on property listings
- QR codes for a tourist guide
- QR codes in the classroom: share resources safely
- QR codes for pet identification: limits and precautions
- QR codes and contactless payments: what to verify
- QR codes for opening hours
- QR codes for customer reviews: practical best practices
- QR codes for LinkedIn profiles: create a clean link
- Business card QR codes and personal data
- QR codes on flyers: choosing a useful call to action
- QR codes on invitations: what should the code contain?
- QR codes for restaurant menus: a practical setup guide
- How to scan a QR code: iPhone, Android and no app needed
- QR code won't scan: 7 causes and their fixes
- What does a barcode contain? Anatomy of an EAN-13
- BarcodeDetector vs ZXing: decoding barcodes in the browser
- Prefill a QR generator via link: the ?content= parameter
- QR codes for print marketing: flyers, packaging, and menus
- Free bulk QR code generator: up to 100 codes in one ZIP file
- EAN-13 explained: digit structure and the check digit formula
- Code 128 vs EAN-13 vs UPC-A: how to choose the right barcode
- QR code colors: customize the look without losing contrast
- QR code error correction: levels L, M, Q, H explained simply
- URL, SMS, email, Wi-Fi, vCard: every content type a QR code holds
- QR code print size: minimum dimensions, quiet zone, distance
- QR code with logo: brand it without breaking scannability
- QR codes and personal data: what you should never encode
- Quishing: how to spot a malicious QR code before scanning
- Scan a QR code from an image or screenshot — no camera needed
- Scan QR codes in your browser without uploading anything
- Wi-Fi QR code: share your Wi-Fi without ever saying the password
- Static vs dynamic QR codes: which one do you actually need
- vCard QR code: a business card that saves contacts in one scan