EXEED AI

Amal Al Alawi's Recent LinkedIn Posts

Amal Al Alawi

Amal Al Alawi

@amal-al-alawi

Software Engineer | Backend Specialist (Laravel, REST APIs) | Full Stack Developer (React & Next.js) | Freelance Web Solutions

ar25 postsTech & AI
View on LinkedIn

Search creators

What they talk about

Analyzing this creator's posts to find their topics and audience...

Posts

Tech & AI

2mo

Leveling up my Laravel skills! 🚀 ​سعيدة جداً بإنهاء كورس Laravel Advanced على LinkedIn Learning، كانت رحلة دسمة ومليئة بالتفاصيل اللي بتنقل الكود لمستوى احترافي. خلال هاد الكورس، ركزت بشكل أساسي على: ​Clean Architecture & Advanced Patterns: فهم أعمق لهيكلية لارفل وكيفية بناء أنظمة قابلة للتوسع. ​Performance Optimization: استخدام الـ Eager Loading والـ Query Scopes لتحسين أداء الاستعلامات. ​Automation & Reliability: كتابة الاختبارات باستخدام TDD (Test-Driven Development) لضمان جودة الكود، والتعامل مع الـ Jobs & Queues لتنفيذ المهام بالخلفية. ​Security & Customization: بناء Custom Middleware وإدارة الصلاحيات عبر Gates and Policies. ​بالمجمل، الكورس عزز عندي فكرة أن البرمجة مو بس "كود شغال"، هي "كود نظيف، آمن، وقابل للصيانة". 💻✨ ​#Laravel #PHP #WebDevelopment #Backend #SoftwareEngineering #TDD #LinkedInLearning #ContinuousLearning
58

Tech & AI

3mo

هل سألت حالك شي يوم وين عم تروح سنين عمرك؟ ​تخيل لو بتستخدم الموبايل بمعدل ٤ ساعات باليوم (وهاد رقم واقعي حالياً).. يعني بعد ٣٠ سنة، رح يكون راح من عمرك ٥ سنين كاملة وأنت خلف الشاشة! ​٥ سنين عم تقرأ فيها تجارب ناس، وتوقع بـ "فخ المقارنة" لا شعورياً بين واقعك والشي اللي بتشوفه.. هل رح تكون مرتاح؟ ​والله هي الـ ٥ سنين لو استثمرتها بصحتك وتطويرك الشخصي، كانت حياتك فرقت لمكان تاني تماماً. ​أنا من سنة كنت "مدمنة" فيسبوك وريلز.. واليوم هي تجربتي بالتحرر: 1️⃣.​كسرت العادة: حذفت الفيسبوك وصرت أفتحه للضرورة فقط من المتصفح (لحتى أصعّب الوصول إله). 2️⃣.​فلترة الانستا: حولت المحتوى لمفيد (لغة إنكليزية، صحة نفسية) واخترت أشخاص محددين بوثق فين عندهن نفس اهتماماتي اتابعهن وبطلت أضيع بالريلز. 3️⃣.​مواجهة فخ المقارنة: صرت أراقب أفكاري، ووقت أحس إني بدأت أقارن حالي بغيري، بذكّر نفسي فوراً: "أنا عم شوف الجانب الناجح بس من حياتهم، وما بعرف الكواليس". 4️⃣.بدل ما أكتب أول اليوم قائمة طويلة من المهام وأحبط إذا ما خلصتها، صرت قبل النوم أكتب شو أنجزت فعلًا خلال اليوم. هذا الشعور بالمكافأة الصغيرة زاد إنتاجيتي بشكل واضح. ​شو البديل اللي ريحني؟ صرت أذكر حالي إني "عندي قصة مختلفة بتستحق الكفاح"، صرت أكافئ حالي على أصغر إنجاز، وأشكر الله على النعم اللي عندي. دخلت "التأمل" والكتابة التفريغية لروتيني، واخترت أشخاص محددين أحكي معهم بدل ما أكون اوفر اجتماعية وبعدت عن الأشخاص الناقديين السلبيين على حساب طاقتي. ​الـ ٥ سنين هي ملكك أنت.. لا تسمح للشاشة تسرقها منك. ✨ ​سؤالي لليوم: شو هو التطبيق اللي بتحس إنه "بيسرق" وقتك أكتر شي؟ وكيف عم تحاول تسيطر عليه؟ وهل بتراقب أفكارك أثناء تصفحك للمواقع؟ ​#وعي_رقمي #تطوير_ذاتي #تجربة_شخصية #إنتاجية #تأمل #صحة_نفسية
57

Tech & AI

2mo

لاحظت شي غريب بالفترة الأخيرة.. كتير صار تواصلو معي طلاب كرمال دروس بالبرمجة والويب . كانت جملتن المشتركة عنا كتير مصادر ومنقدر نسأل الAI بس بدنا حدا يعلمنا كيف نبني مشاريع ويعطينا الزبدة. ويوجهنا كيف نستخدم الAI لأنو عم نضيع. ففكرت انو وين رايح المستقبل هل رح يتغير شكل التعليم ؟ بس الشي يلي حسيت انو بخوف هو الجيل الجديد رح يبعدوا عن الأساسيات ويتوجهوا ليتعلمو المكاتب والframeworks الجاهزة ويعتمدو بشكل كامل ع الAI وبالتالي أساس برمجي هش ووهم خبرة. بتوقع حتى طريقة التعليم رح تختلف من الاقتصار ع تعليم الأساسيات للتوجه نحو كورس شامل يغطي الأساس بمشاريع حقيقية ثم التوجه نحو توجيه أدوات الذكاء الصنعي لتكون مساعدة النا وتعليم مفاهيم متقدمة الكورسات كانت تترك الطالب يكتشفها لحالو. فقررت بالتدريب يلي رح اعملو لReact أتبع استراتيجية تجمع بين "الأصل" و"العصر": ​الفهم العميق أولاً: مارح أبدأ بـ "السحر"، بل بكيفية عمل React في الخلفية، وفهم الـ Logic الأساسي قبل كتابة أول سطر. ​التطبيق العملي المباشر: بناء مشاريع تغطي المفاهيم الأساسية لترسيخ الفكرة. ​دمج الذكاء الاصطناعي بذكاء: بعد التمكن من الأساس، ننتقل لتعلم كيف نستخدم الـ AI كمساعد وليس كمحرك أساسي، مع التركيز على التعامل مع Git والمفاهيم المتقدمة مثل Redux. ليكون كورس شامل لأنو الهدف مو نطلع ناس بتكتب كود… الهدف نطلع مهندسين بيفهموا شو عم يعملوا. وانتو كيف بتشوفو مستقبل التعليم رح يكون بعصر الAI؟
44

Tech & AI

2mo

تخيل ترفع مشروعك على السيرفر.. وبعدها بدقائق توصلك عشرات الرسائل: "الموقع ما عم يشتغل!" مع إنو كان شغال 100% على جهازك 😅 هون بتبلش رحلة طويلة من البحث: وين المشكلة؟ بالكود؟ بالإعدادات؟ بالسيرفر؟ بس الحقيقة غالبًا أبسط من هيك… المشكلة بالـ Environment نفسها. كل جهاز بيختلف: نسخة اللغة المستخدمة، إعدادات السيرفر، المكتبات…وهذا الاختلاف كفيل يكسر أي مشروع. هون بيجي دور Docker بيخليك تغلف مشروعك مع كل بيئته داخل Container،يعني نفس الإعدادات ونفس التشغيل… وين ما كان. لهيك قررت أتعلم Docker، تعلمت بهاد الكورس كيف أتعامل مع الحاويات (Containers) وأبني بيئة تشغيل مرنة وقابلة للنشر بسهولة. من أهم الأشياء يلي اكتسبتها: • الفرق الحقيقي بين Containers و Virtual Machines. • كيف أبني صورة (Image) باستخدام Dockerfile. • إدارة وتشغيل الحاويات باستخدام Docker CLI. • رفع الصور على Docker Registry. • التعامل مع المشاكل الشائعة و Debugging. أكتر شي لفتني هو كيف Docker بيسهل عملية نقل المشروع من بيئة لبيئة بدون مشاكل وهذا الشي مهم جدًا خصوصًا مع المشاريع يلي بشتغل عليها بـ Laravel و React. #Docker #Backend #DevOps #Laravel #React #SoftwareEngineering #LearningJourney
49

Tech & AI

3mo

كيف تكسر حاجز الخوف من مقابلات العمل باللغة الإنجليزية؟ 🚀 ​كثير منّا عندو المهارات التقنية القوية، لكن عند "المقابلة بالإنجليزية" (English Interview) يبدأ التوتر والقلق. السر دائماً يكمن في الممارسة المستمرة. ​حبيت مشاركتكم تجربة رائعة باستخدام Gemini Live كمدرب شخصي لممارسة المحادثة: ​كيف تستفيد منه عملياً؟ ​تحديد التخصص: يمكنك ببساطة اخباره بتفاصيل كاملة حول الشركة التي تريدها وإخباره بالمنصب الوظيفي الذي تقدمت إليه (مثلاً: Full-Stack Developer) وهو يطرح الأسئلة المناسبة. ​محاكاة الواقع: اطلب منه أن يلعب دور "المُحاور" (Interviewer) وأن يطرح عليك أسئلة بناءً على خبرتك والمشاريع التي عملت عليها. ​كسر الرهبة: الميزة هنا هي المرونة يمكنك التحدث، الخطأ، وإعادة المحاولة حتى تشعر بالثقة الكاملة. ​ليش Gemini Live بالذات؟ ​تفاعل لحظي: المحادثة تشبه الواقع تماماً، وليست مجرد نصوص. ​تغذية راجعة: يمكنك سؤاله بعد المحادثة: "كيف كان أدائي؟ وما هي الكلمات الأفضل التي كان يمكنني استخدامها؟". ​بناء الثقة: التكرار هو الذي يحول الرهبة إلى تمكن. ​سواء كنت تستعد لمقابلة عمل أو تريد فقط تطوير لغتك في مجال تقني معين، ابدأ اليوم ولا تنتظر الفرصة حتى تأتي! ​هل جربتم تستخدمو الذكاء الاصطناعي في تطوير مهارات المحادثة من قبل؟ شاركونا تجاربكم في التعليقات 👇
33

Tech & AI

2mo

من أكثر الأشياء التي بدأت أستوعب أهميتها كمطورة Backend: إن بناء الـ APIs لا يعني فقط أن الـ endpoint يعمل بنجاح… بل يعني أيضاً حماية التطبيق الموجود بالإنتاج من أن يتعطل بعد أي تحديث. عندما يكون تطبيق الموبايل المبني باستخدام Flutter منشورًا بالفعل على المتجر، أو حتى تطبيق Desktop تصبح الـ API بمثابة "عقد" بين فريق الـ Backend وفريق الـ Mobile. وأحيانًا تعديل صغير جدًا مثل: - تغيير اسم field - تعديل شكل الـ response - حذف قيمة قديمة يؤدي إلى توقف التطبيق عند آلاف المستخدمين. فلهذا السبب يجب أن نحاول قدر الإمكان ألّا نغير شكل الـ Response بشكل مباشر. فبدلًا من حذف field أو تعديل اسمه مباشرة، نقوم بإضافة field جديد أولًا، ثم بعد التأكد من أن التطبيقات بدأت باستخدامه بشكل كامل، يمكن إزالة الـ field القديم لاحقًا بشكل آمن. حيث أن، التطوير الاحترافي للـ Backend يحتاج تفكيراً أعمق من مجرد كتابة الكود: • API Versioning • Backward Compatibility • Stable Response Structures • Staging Environment • Version Checking System • Force Update & Soft Update Logic هذا النوع من التفاصيل جعلني أدرك أن بناء الأنظمة ليس مجرد "كود يعمل"، بل هو تصميم أنظمة مستقرة تستطيع التوسع والتطور بدون أن تكسر تجربة المستخدم. وسأتحدث في منشورات قادمة عن: - كيفية استخدام نظام الـ Versioning - وآلية التواصل بين الـ Backend وتطبيقات الموبايل أو الـ Desktop #BackendDevelopment #Laravel #Flutter #API #SoftwareEngineering #SystemDesign #MobileDevelopment #CleanCode
33

Tech & AI

2mo

بعد حديثي في المنشور السابق عن أهمية الـ API Versioning وكون الـ APIs بمثابة “عقد” بين الأنظمة… بدأت ألاحظ نقطة مهمة جدًا: الـ Backend لا يقوم بإبلاغ المستخدم مباشرة بوجود تحديث جديد للتطبيق، بل يقوم بإبلاغ التطبيق… والتطبيق هو من يقوم بإبلاغ المستخدم. في البداية كنت أتساءل: كيف يعرف تطبيق الموبايل أن هناك إصداراً جديداً؟ وكيف يتم أحياناً منع الإصدارات القديمة من العمل؟ الإجابة كانت من خلال ما يسمى بـ: Version Checking System فعادةً يقوم التطبيق بإرسال نسخة الإصدار الحالية مع الـ requests أو عند فتح التطبيق، مثل: App-Version: 1.0.3 ثم يقوم الـ Backend بمقارنة النسخة الحالية مع: - latest_version - minimum_version وهنا نقطة مهمة جدًا: ليس كل المستخدمين يقومون بتحديث التطبيق بنفس اللحظة. قد يصل للمستخدم إشعار بوجود تحديث جديد، لكنه يتجاهله ويستمر باستخدام الإصدار القديم لفترة. لذلك، في الواقع قد يكون لدينا أكثر من إصدار يعمل بنفس الوقت: - مستخدمون على v1 - مستخدمون على v2 - وربما إصدارات أقدم أيضًا وهنا تظهر أهمية الـ API Versioning، لأن الـ Backend يجب أن يكون قادرًا على التعامل مع هذه الإصدارات بدون أن يكسر التطبيق عند المستخدمين. وبناءً على ذلك يعيد الـ Backend معلومات مثل: - update_required - force_update - latest_version وهنا يبدأ دور تطبيق الموبايل أو الـ Desktop: - إظهار رسالة تحديث - تحويل المستخدم إلى المتجر - أو حتى منع الإصدارات القديمة من العمل ومن أكثر الأمور التي بدأت أتعلمها: أن بناء الأنظمة المستقرة لا يعتمد فقط على كتابة Features جديدة… بل يعتمد أيضًا على التفكير بكيفية تطور النظام مستقبلًا بدون كسر تجربة المستخدم. #BackendDevelopment #API #APIVersioning #Laravel #Flutter #SoftwareEngineering #SystemDesign #MobileDevelopment #CleanCode
28

Tech & AI

1mo

مؤخرًا بدأت ألاحظ مفهوم مهم جدًا في تصميم الأنظمة الخلفية: Idempotency. ببساطة، الـ Idempotency تعني أن تنفيذ نفس العملية أكثر من مرة يعطي نفس النتيجة، بدون آثار جانبية إضافية في الخادم. ليش هذا مهم؟ في الأنظمة الحقيقية (خصوصًا الـ APIs والـ distributed systems)، ممكن يصير: - إعادة إرسال نفس الطلب بسبب مشكلة في الشبكة - retry تلقائي من النظام - timeout يؤدي لإعادة التنفيذ إذا النظام غير مصمم بشكل idempotent، ممكن تواجه مشاكل مثل: - تنفيذ الدفع مرتين - إرسال نفس الإيميل أكثر من مرة - تكرار البيانات 💡 مثال بسيط: إذا أرسلت طلب إنشاء Order بنفس الـ request مرتين، لازم النظام يتأكد إنه ما ينشئ طلبين، بل يتعامل مع الطلب الثاني كأنه الأول. كيف نطبق هذا المفهوم؟ - استخدام unique identifiers (مثل idempotency key) - التحقق من وجود العملية مسبقًا في قاعدة البيانات - تصميم العمليات بحيث تكون آمنة عند التكرار ✨ الخلاصة: في الأنظمة الموزعة، التكرار مش احتمال… بل شيء متوقع. والتصميم الجيد هو اللي يتعامل معه بذكاء. #Backend #Laravel #SoftwareEngineering #APIs #SystemDesign
23

Tech & AI

2mo

كتير عم اقرأ مناشير بالفترة الأخيرة عن كيف نزيد عدد impressions وظهور الملف الشخصي ع لينكدان وقرأت مناشير عن وقت النشر، الخوارزمية، وأفضل التوقيتات… بس من تجربتي الشخصية، الموضوع مختلف شوي. أكتر شي فعلاً ساعدني ببناء الـ personal branding ما كان توقيت النشر… كان التجربة الشخصية + الصدق + المعرفة. لما يكون عندك قيمة حقيقية تقدميها، هي رح توصل للأشخاص الصح… حتى لو بعد وقت. صرت أراقب أنا كمستخدم شو المحتوى يلي بتفاعل معو، انتبهت اني بتفاعل مع المحتوى يلي فيه تجربة شخصية وفائدة علمية وبوقف عند المحتوى البصري يلي فيه صور او فيديو قبل مااقرأ اي حرف من المنشور. كمان نقطة مهمة: الاعتماد الكامل على أدوات الـ AI بكتابة المنشورات صار واضح جدًا. من أول سطر، فيك تعرف إذا المنشور مكتوب بروح بشرية أو مجرد كلام مرتب بدون تجربة حقيقية. #Linkedin
20

Tech & AI

2mo

​🕒 كيف حلّت Laravel Commands مشكلة "تحديث حالة الحجوزات" في مشروعي التخرج؟ ​في مشروعي (نظام حجز غرف لفندق)، واجهت تحدي منطقي: الغرفة لازم ترجع "متاحة" فور انتهاء وقت الحجز. ​التفكير التقليدي: أني أتحقق من الحالة يدوياً أو أنتظر دخول مستخدم لتحديثها.. وهذا طبعاً حل غير عملي وغير احترافي. ❌ ​الحل الذكي: Laravel Custom Commands & Scheduler 🚀 ​بدل ما أتعب حالي بالمراقبة المستمرة، أنشأت Custom Command وربطته بالـ Scheduler الخاص بـ Laravel ليقوم بالمهمة عني بكل دقة. ​كيف اشتغل الموضوع؟ 🛠️ Schedule::command('app:update-room-status')->everyMinute(); النتيجة: ✅ النظام صار "Self-managed" وما بيحتاج تدخل بشري. ✅ تجربة مستخدم (UX) ممتازة، لأن الغرف بتظهر فوراً بمجرد ما تفضى. ✅ فصل كامل لمنطق التحديث عن الـ Controllers الأساسية. ​نصيحة للمطورين: إذا عندك مهام روتينية (إرسال إيميلات، تنظيف ملفات، تحديث حالات)، لا تعملها داخل الـ Request cycle.. الـ Task Scheduling هو صديقك الصدوق! ​شو أصعب "Task" احتجتوا تعملوا لها Schedule في مشاريعكم؟ 👇 ​#Laravel #PHP #Backend #SoftwareEngineering #CleanCode #TaskScheduling #WebDevelopment
24