كل المشاريع
مجوهرات · عمليات B2B + تجارة B2C دراسة حالة قيد العمل

منظومة مجوهرات السلطان الرقمية

تطبيقان إنتاجيان — لوحة عمليات داخلية وتطبيق تجارة إلكترونية للعملاء — أُعيد بناؤهما من شيفرة قديمة مع تحسين بالأداء بنسبة ٩٠٪.

دوري
المطوّر الأساسي للموبايل
الفترة
January 2026 – Present
الخبرة المرتبطة
مجوهرات السلطان

دراسة الحالة الكاملة متوفّرة حاليًا بالإنجليزية، والترجمة العربية في الطريق.

Al-Sultan Jewelry is a Türkiye-based company with a complex operational stack: gold buying/selling, accounting, supplier/customer relationships, and a consumer storefront. The existing app had accumulated enough technical debt to become too slow and unreliable to sustain. My engagement began as a “fix the performance” contract and grew into a full ecosystem rebuild.

The two apps

Internal operations dashboard (staff-facing). A powerful tool where accuracy beats aesthetics. Its hardest feature is the Gold Operations module — a multi-step workflow with branching paths, weights in grams and tolas, purity percentages, and spot-price conversions — implemented with Reactive Forms (typed FormControls, cross-field validators, FormArray steps) and a BLoC managing the step state machine. An accounting module handles ledgers, filtered history over thousands of records, and PDF export.

Consumer e-commerce app. Product browsing, cart, checkout, and order tracking, with offline-first ObjectBox caching (full sync on first launch, incremental sync after), Arabic/English localization with full RTL, and locally-persisted cart state.

The 90% performance turnaround

The legacy app’s problems were structural, not superficial:

  1. No caching layer — every screen triggered fresh API calls.
  2. Full-resolution image decoding — 4K product images decoded for thumbnails, causing OOM kills.
  3. A global ChangeNotifier everything subscribed to — every change rebuilt the tree.
  4. Synchronous JSON parsing on the main isolate froze the UI for seconds.
  5. No const constructors anywhere.

The rebuild addressed each: ObjectBox as a local source of truth, cached_network_image with cacheWidth/cacheHeight, feature-scoped BLoCs with BlocSelector, compute() isolates for JSON, and a mechanical const pass. Result: navigation on the most-used screens went from ~3s to ~0.3s, memory dropped ~60%, and OOM-driven crashes fell to near zero.

Why it matters

This is the portfolio’s clearest example of performance judgment and legacy-rebuild decision-making — recognizing when structural problems run deep enough that a targeted rebuild, not endless patching, is the responsible engineering choice.