Mohammad Jahangir
← All projects

NOVIQ Solutions — in-house SaaS platform

Kafoo

Loyalty rewards from a tax invoice, with zero POS integration.

React NativeReactNode.jsBilingual AR/EN SaaS
Role
Full Stack Engineer, NOVIQ Solutions
Status
Live in production
kafoo.vip
Kafoo.vip homepage in Arabic showing the invoice-scan loyalty points flow

Problem

Loyalty programs in Saudi retail and restaurants usually mean new POS hardware, cashier retraining, or physical stamp cards — all friction that small and mid-size merchants can't easily absorb, and all points of failure for fraud.

Solution

Kafoo turns the ZATCA-compliant QR code already printed on every Saudi tax invoice into the loyalty mechanism: a customer scans their invoice and automatically earns points or stamps, with no POS integration, new hardware, or cashier workflow changes required.

What I built

  • Built core product features: automatic tier upgrades, duplicate- and expired-invoice fraud protection, and multi-branch, multi-employee role-based access for merchant staff.
  • Built an open API with webhooks so partner POS and merchant systems can integrate with Kafoo's loyalty engine independently.
  • Redesigned the partner points-card and rewards screens and rebuilt the React Native dashboard header with a more premium visual treatment.
  • Diagnosed and fixed an iOS-specific Arabic text rendering bug caused by CoreText font fallback, affecting the bilingual (Arabic/English) UI.
  • Delivered a phased rollout of a large client change-request backlog, prioritizing and shipping improvements iteratively rather than as one large release.

Key capabilities

ZATCA invoice QR verificationAutomatic tier upgradesDuplicate/expired-invoice fraud protectionMulti-branch, multi-employee RBACOpen API & webhooksArabic/English bilingual UI

Engineering challenges

  • Verifying invoice authenticity and preventing duplicate or expired invoices from being redeemed, without requiring any POS integration.
  • Diagnosing a CoreText font-fallback bug that broke Arabic text rendering only on iOS — a platform-specific rendering issue rather than a logic bug.
  • Sequencing a large backlog of client change requests into shippable phases without destabilizing the live product.

Outcome

Live product used by retail and restaurant merchants across Saudi Arabia under the NOVIQ Solutions brand.