التحدي
تطوير منتجات قائمة بالتوازي مع استمرار استخدامها. ويتطلب ذلك فهم كود تطوّر على مدى سنوات، واحتياجات الفرق، والتكاملات بين الأنظمة، وتأثير كل تغيير على تجربة المستخدم.
مهندس برمجيات خبير (Senior Software Engineer II) · قيادة مهندسين في فريق تطبيقات الموبايل · 2015–الآن · مستمر
خبرة تطورت مع المنتجات والفرق
انضممت إلى Nana عام 2015، وأسهمت في بناء تطبيق العملاء في مراحله الأولى. ومع نمو المنتجات، امتد عملي إلى تطبيقات تجهيز الطلبات والتوصيل وقطاع الأعمال، ثم إلى قيادة المهندسين وبناء أنظمة وأدوات جديدة.
طوّرت وكيل الذكاء الاصطناعي لخدمة العملاء لدى Nana، لدعم المحادثات والتعامل مع تذاكر الدعم. يتوفر الوكيل داخل تطبيق Nana، ويمكن الوصول إليه أيضًا عبر متصفح الويب. يدعم النظام المحادثات النصية والصوتية، ويستخدمه فريق الدعم فعليًا.
تطوير منتجات قائمة بالتوازي مع استمرار استخدامها. ويتطلب ذلك فهم كود تطوّر على مدى سنوات، واحتياجات الفرق، والتكاملات بين الأنظمة، وتأثير كل تغيير على تجربة المستخدم.
أراعي طبيعة المنتج والكود القائم والتكاملات المطلوبة. يشمل ذلك تطوير Android باستخدام Kotlin وJava، وبناء تطبيقات باستخدام Flutter، وتحديث تطبيقات React Native، وربط الخدمات وحلول الذكاء الاصطناعي باستخدام Python وJavaScript.
هذه أمثلة مختارة من عملي داخل Nana. يوضح كل مشروع حدود مساهمتي؛ فبعض الأعمال نُفذت ضمن فريق، وبعضها توليت بناءه بصورة مستقلة داخل الشركة. تتضمن الصفحة تطبيقات عامة وأنظمة داخلية.
طوّرت وكيل الذكاء الاصطناعي لخدمة العملاء لدى Nana.
طوّرت وكيل الذكاء الاصطناعي لخدمة العملاء لدى Nana، لدعم المحادثات والتعامل مع تذاكر الدعم. يخدم الوكيل Nana وRasseed، ويستخدمه فريق الدعم فعليًا.
جمع محادثات العملاء بالعربية والإنجليزية والتعامل مع تذاكر الدعم عبر وكيل ذكاء اصطناعي متاح داخل تطبيق Nana وعبر الويب.
ما يبرزه هذا العمل: تطوير وكيل ذكاء اصطناعي لخدمة العملاء ضمن إجراءات دعم فعلية.
استخدمت JavaScript لتطوير تجربة المحادثة وربطها بخدمات الدعم القائمة، بينما تولى أحد زملائي تطوير نظام التذاكر الخلفي.








أسهمت في بناء التطبيق وتطويره عبر مراحل متعددة.
ساهمت في بناء التطبيق منذ مراحله الأولى، وعدت للعمل عليه في مراحل لاحقة لتطوير المزايا ودعم الإصدارات.
تطوير تطبيق العملاء عبر مراحل متعددة مع حماية مسارات الطلب الأساسية والحفاظ على استقراره في بيئة الإنتاج.
ما يبرزه هذا العمل: تطوير منتج طويل العمر والعمل على استقراره عبر مراحل مختلفة.
ناسب Android الأصلي وJava وKotlin كود التطبيق القائم، بينما وفرت Firebase وCrashlytics رؤية أوضح لحالة الإصدارات ومشكلات الإنتاج.



توليت تطوير التطبيق وصيانته خلال جزء كبير من عملي في Nana.
يخدم التطبيق فرق تجهيز الطلبات والتوصيل، ويشمل الطلبات والمسح بالباركود والموقع والمدفوعات ومؤشرات العمل.
تحديث تطبيق ميداني عمره أكثر من عقد مع استمرار تنفيذ الطلبات والموقع والمدفوعات والمسح بالباركود والإصدارات من دون انقطاع.
ما يبرزه هذا العمل: مسؤولية ممتدة عن تطبيق معقد، تجمع التطوير والتحديث والاختبارات وقيادة المهندسين.
قللت الهجرة التدريجية من Java إلى Kotlin مخاطر إعادة الكتابة، وحسّنت MVVM وHilt وRoom وRetrofit وFirebase والاستخدام الانتقائي لـCompose قابلية الاختبار والصيانة.

ساهمت ضمن الفريق في تطوير التطبيق وتحديثه.
تطبيق Nana لقطاع الأعمال، ويشمل شراء المنتجات والمزادات المباشرة.
تحديث تطبيق B2B يعمل عليه فريق كامل من دون الإضرار باستقراره، مع تقديم تجربة مزاد مباشر سريعة عبر خدمة خارجية.
ما يبرزه هذا العمل: تطوير مزايا جديدة داخل منتج قائم بالتعاون مع الفريق.
كان React Native التقنية القائمة بالفعل؛ لذلك جمعت العمل على التحديث التدريجي مع تكامل خدمة مزادات خارجية لعرض الدفعات القادمة وتحديث حالة المزايدة وتقديم العروض لحظيًا.



بنيت تطبيق تجهيز الطلبات داخل Nana.
تطبيق لفرق تجهيز الطلبات داخل المستودعات، يعمل على أجهزة Android المزودة بقارئ باركود، مع دعم المسح بالكاميرا.
ضمان موثوقية التقاط المنتجات بالباركود عبر أجهزة المسح المتخصصة وكاميرات الهاتف، مع اتصال متقطع وتحديثات فورية للمهام.
ما يبرزه هذا العمل: بناء تطبيق يرتبط بالأجهزة وظروف العمل الميداني.
يدعم Flutter التطبيق على أجهزة Android، وينظم Riverpod حالة مسارات العمل، وتوفر Isar البيانات المحلية، وتدعم WebSockets وFCM تحديثات المهام.

صممت التطبيق وبنيته بصورة مستقلة داخل Nana.
تطبيق Android TV لعرض مراحل تنفيذ الطلبات على شاشات المستودع.
عرض أربع مراحل حية لتنفيذ الطلبات بوضوح من مسافة داخل المستودع، مع استمرار العمل خلال انقطاعات الشبكة القصيرة.
ما يبرزه هذا العمل: تصميم التطبيق بما يناسب بيئة العمل داخل المستودع.
وفرت Kotlin وCompose for TV واجهة مناسبة للتحكم عن بُعد والعرض على شاشة كبيرة، بينما خزّنت Room حالة الطلبات محليًا وحافظت Coroutines وFlow على انتظام التحديثات.

بنيت أدوات داخلية للمهندسين وفرق الاختبار.
أدوات تساعد على متابعة حالة التطبيقات وإعادة إنتاج المشكلات في مسارات عمل متخصصة.
إعادة إنتاج أعطال مرتبطة بأجهزة المستودعات وبيئتها من دون الحاجة إلى جهاز مسح فعلي أو طلبات حقيقية قيد التنفيذ.
ما يبرزه هذا العمل: تطوير أدوات تخدم الفريق وتسهّل اختبار الأنظمة المرتبطة ببيئات وأجهزة متخصصة.
استخدمت أدوات صغيرة بـPython والويب وADB وتوليد الباركود والمراقبة لتسريع التجربة والاتصال المباشر بالأنظمة قيد الاختبار.
