{
  "id": "java-backend-2027",
  "title": "Java Backend Roadmap 2027",
  "subtitle": "أربع مسارات بتتعلّمهم مع بعض… ومشروع واحد بيكبر معاك.",
  "language": "ar-EG",
  "contentVersion": "2026-10-19",
  "videoUrl": "",
  "tracks": [
    {
      "id": "ai",
      "number": 1,
      "color": "#8B5CF6",
      "name": "AI",
      "short": "AI",
      "description": "تستخدم AI في التعلّم والتفكير والتنفيذ والمراجعة من أول يوم، وبعدين تبني ميزات AI مُقيَّمة داخل المنتج."
    },
    {
      "id": "java",
      "number": 2,
      "color": "#14B8A6",
      "name": "Java Backend والتخصص التقني",
      "short": "Java Backend",
      "description": "تفهم البرمجيات وتكتبها وتختبرها وتشخّص أعطالها وتشغّلها."
    },
    {
      "id": "engineering",
      "number": 3,
      "color": "#F59E0B",
      "name": "البيزنس والتصميم والتسليم",
      "short": "البيزنس والتصميم والتسليم",
      "description": "تفهم الدومين واحتياج المستخدم، وتختار الحل والتصميم المناسب، وتسلّم قيمة. التصميم المعماري وفهم البيزنس جزء من المسار ده."
    },
    {
      "id": "professional",
      "number": 4,
      "color": "#3B82F6",
      "name": "التواصل والعمل المهني",
      "short": "التواصل والعمل المهني",
      "description": "تشرح وتتفق وتتعاون وتوثّق، وتقود كل ما مسؤوليتك تكبر."
    }
  ],
  "stages": [
    {
      "id": "stage-1",
      "number": 1,
      "name": "المرحلة الأولى",
      "level": "مبتدئ",
      "short": "مبتدئ",
      "focus": "برنامج Java صغير تفهمه",
      "title": "المرحلة الأولى — مبتدئ: برنامج Java صغير تفهمه · الخطوات 01–04",
      "goal": "تبدأ باستخدام AI وتبني أساسًا يساعدك تفهم وتراجع، مع برنامج لإدارة الكورسات والطلاب والتسجيلات في الذاكرة.",
      "gate": "تشغّل البرنامج وتشرح سلوكه، تضيف شرطًا جديدًا، وتشخّص خطأ وتثبت إصلاحه باختبار.",
      "overview": {
        "ai": "شرح وتلميحات ومراجعة",
        "java": "Java وOOP وGit واختبارات",
        "engineering": "قواعد التسجيل ومسؤوليات بسيطة",
        "professional": "سؤال واضح وشرح قرار"
      },
      "outcome": "برنامج كورسات في الذاكرة",
      "steps": [
        "01",
        "02",
        "03",
        "04"
      ]
    },
    {
      "id": "stage-2",
      "number": 2,
      "name": "المرحلة الثانية",
      "level": "تأسيس Junior",
      "short": "تأسيس Junior",
      "focus": "Backend وAPIs وقاعدة بيانات",
      "title": "المرحلة الثانية — تأسيس Junior: Backend وAPIs وقاعدة بيانات · الخطوات 05–07",
      "goal": "تحول البرنامج إلى Backend له بيانات دائمة وAPIs للكورسات والدروس والتسجيل.",
      "gate": "تتبع الطلب حتى قاعدة البيانات، وتبرر النموذج وعقد API، وتغيّر مطلبًا وتختبره ويقدر شخص آخر استخدام التوثيق.",
      "overview": {
        "ai": "نقد البيانات ومساعد IDE",
        "java": "SQL وHTTP وSpring Boot",
        "engineering": "ERD وعقود API",
        "professional": "توثيق وتعاون مع Frontend وQA"
      },
      "outcome": "Backend ببيانات دائمة",
      "steps": [
        "05",
        "06",
        "07"
      ]
    },
    {
      "id": "stage-3",
      "number": 3,
      "name": "المرحلة الثالثة",
      "level": "Junior متمكن",
      "short": "Junior متمكن",
      "focus": "تطبيق آمن منشور قابل للصيانة",
      "title": "المرحلة الثالثة — Junior متمكن: تطبيق آمن منشور قابل للصيانة · الخطوات 08–10",
      "goal": "تضيف الحسابات والصلاحيات والدروس والاختبارات والنتائج، وتسلّم رحلة طالب كاملة على بيئة منشورة.",
      "gate": "تسلّم Feature صغيرة من فهم المطلوب لحد النشر والمتابعة، وتعرف إمتى تحتاج مساعدة أو مراجعة.",
      "overview": {
        "ai": "مراجعة واختبارات وAgent محدود",
        "java": "Security وDocker وCI/CD",
        "engineering": "صلاحيات وجودة وإصدار",
        "professional": "Demo وRunbook"
      },
      "outcome": "رحلة طالب منشورة",
      "steps": [
        "08",
        "09",
        "10"
      ]
    },
    {
      "id": "stage-4",
      "number": 4,
      "name": "المرحلة الرابعة",
      "level": "Mid-level",
      "short": "Mid-level",
      "focus": "امتلاك Feature كاملة والتعامل مع التعقيد",
      "title": "المرحلة الرابعة — Mid-level: امتلاك Feature كاملة والتعامل مع التعقيد · الخطوات 11–14",
      "goal": "تتعامل باستقلالية أكبر مع قواعد عمل وتزامن وأداء وتكاملات وفشل، وتبني أول ميزة AI مفيدة للمدرس.",
      "gate": "تمتلك Feature متوسطة من المتطلبات للتشغيل، وتتعامل مع التكاملات وحالات الفشل وتشرح مفاضلاتك، مع مراجعة مناسبة للمخاطر.",
      "overview": {
        "ai": "تحليل ودمج Model",
        "java": "Concurrency وأداء وتكاملات",
        "engineering": "اتساق ومدفوعات وقيمة",
        "professional": "ملكية وتقدير ومفاضلات"
      },
      "outcome": "ميزة كاملة تتحمل الفشل",
      "steps": [
        "11",
        "12",
        "13",
        "14"
      ]
    },
    {
      "id": "stage-5",
      "number": 5,
      "name": "المرحلة الخامسة",
      "level": "الاستعداد لمسؤوليات Senior",
      "short": "مسؤوليات Senior",
      "focus": "تصميم وتشغيل أجزاء مؤثرة",
      "title": "المرحلة الخامسة — الاستعداد لمسؤوليات Senior: تصميم وتشغيل أجزاء مؤثرة · الخطوات 15–18",
      "goal": "تتعامل مع غموض ومخاطر أكبر، وتحسن النظام والفريق؛ تضيف مساعد محتوى وصلاحيات، وتدرس SaaS والاعتمادية والتوزيع عند الحاجة.",
      "gate": "تمتلك جزءًا مؤثرًا عبر التصميم والتنفيذ والتشغيل، وتقلل مخاطره وتوجّه غيرك وتتعامل مع متطلبات غير مكتملة. تجربة ذلك مع فريق ومستخدمين حقيقيين جزء أساسي من إثباته.",
      "overview": {
        "ai": "RAG وTool Calling",
        "java": "Multi-tenancy وObservability",
        "engineering": "SaaS وSLOs وتوسع",
        "professional": "قيادة وتوجيه"
      },
      "outcome": "جزء مؤثر قابل للتشغيل",
      "steps": [
        "15",
        "16",
        "17",
        "18"
      ]
    },
    {
      "id": "stage-6",
      "number": 6,
      "name": "المرحلة السادسة",
      "level": "Staff / Architect وما بعدها",
      "short": "Staff / Architect",
      "focus": "أثر يتجاوز فريقًا واحدًا",
      "title": "المرحلة السادسة — Staff / Architect وما بعدها: أثر يتجاوز فريقًا واحدًا · الخطوات 19–21",
      "goal": "تربط اتجاه التقنية باقتصاديات المنصة وتمكّن فرقًا متعددة. Staff وArchitect قد يكونان مسارين مختلفين وليسا بالضرورة رتبتين متتاليتين.",
      "gate": "مبادرات تتبناها عدة فرق، ونتائج مستمرة قابلة للقياس، ومعرفة وملكية تستمران دون اعتماد يومي عليك.",
      "overview": {
        "ai": "تشغيل وتقييم وتمكين فرق",
        "java": "Platform وتخصص عميق",
        "engineering": "استراتيجية واقتصاديات",
        "professional": "تأثير وبناء قادة"
      },
      "outcome": "أثر عبر فرق",
      "steps": [
        "19",
        "20",
        "21"
      ]
    }
  ],
  "steps": [
    {
      "id": "01",
      "stage": "stage-1",
      "title": "بيئة العمل والسؤال الواضح",
      "platform": "تشغّل برنامج Java يعرض بيانات كورس، وتحدد المدرّس والطالب والكورس والتسجيل كنطاق أول للمنصة.",
      "tracks": {
        "ai": {
          "title": "مساعد التعلّم",
          "what": "أساسيات استخدام ChatGPT أو Claude: هدف واضح، سياق، أسئلة متابعة، وحدود الثقة والخصوصية.",
          "why": "تستفيد منه في الشرح والتدريب والمراجعة من أول يوم.",
          "evidence": "تلخّص مفهومًا بكلامك، وتجرب مثالًا، وتتحقق من الإجابة."
        },
        "java": {
          "title": "بيئة العمل وفهم البرنامج",
          "what": "JDK، IDE مثل IntelliJ IDEA، terminal، الملفات، وتشغيل برنامج Java وتتبع المدخلات والمخرجات.",
          "why": "تجهز بيئة تستطيع التجربة فيها وتفهم دورة كتابة وتشغيل الكود.",
          "evidence": "تشغّل برنامجًا يعرض بيانات كورس، وتغيّر المدخلات وتفسّر النتيجة."
        },
        "engineering": {
          "title": "فهم مشروع الرحلة",
          "what": "المستخدم والمشكلة والهدف والنطاق: مدرس، طالب، كورس وتسجيل؛ تحديد الافتراضات.",
          "why": "تربط التعلّم باحتياج مفهوم وتبدأ بنطاق صغير.",
          "evidence": "تكتب وصفًا مختصرًا للمنصة وثلاثة أسئلة تحتاج إجابة من المدرّس."
        },
        "professional": {
          "title": "السؤال الواضح",
          "what": "وصف الهدف، ما جرّبته، النتيجة المتوقعة والفعلية؛ مفردات تقنية إنجليزية أساسية.",
          "why": "تحصل على مساعدة مفيدة وتقلل سوء الفهم.",
          "evidence": "تكتب سؤالًا يمكن لشخص آخر فهمه وتجربة مشكلته."
        }
      }
    },
    {
      "id": "02",
      "stage": "stage-1",
      "title": "أساسيات Java وحل المشكلات",
      "platform": "قاعدة أهلية التسجيل: مين يقدر يسجّل في كورس، بحالات نجاح ورفض مكتوبة ومطابقة لسلوك البرنامج.",
      "tracks": {
        "ai": {
          "title": "طريقة التعلّم مع AI",
          "what": "طلب تلميح، تقسيم المشكلة، شرح خطوة، ثم التحقق ومحاولة مستقلة.",
          "why": "تحوّل المساعدة إلى قدرة تقدر تستخدمها بنفسك.",
          "evidence": "تحل تمرينًا مشابهًا وتشرح الحل بعد انتهاء المساعدة."
        },
        "java": {
          "title": "أساسيات Java وحل المشكلات",
          "what": "Types، variables، conditions، loops، methods، strings، arrays، scope وdebugger.",
          "why": "تعبّر عن قواعد المنصة بالكود وتتابع تنفيذها.",
          "evidence": "تنفذ قاعدة أهلية تسجيل بسيطة، وتتتبع شرطًا خاطئًا وتصلحه."
        },
        "engineering": {
          "title": "تحويل القاعدة لسلوك",
          "what": "Inputs/outputs، pseudocode، حالات النجاح والرفض، وأمثلة قبول ملموسة.",
          "why": "تحدد السلوك المطلوب قبل التنفيذ.",
          "evidence": "تكتب حالات لطالب مؤهل وغير مؤهل، ويطابق البرنامج نتائجها."
        },
        "professional": {
          "title": "شرح التفكير",
          "what": "شرح خطوات الحل، تدوين الافتراضات، والتعبير بوضوح عن نقطة عدم الفهم.",
          "why": "يقدر غيرك يتابع منطقك ويساعدك.",
          "evidence": "تشرح قاعدة التسجيل ومثالًا مضادًا لها في دقيقتين."
        }
      }
    },
    {
      "id": "03",
      "stage": "stage-1",
      "title": "نمذجة الكود بـJava",
      "platform": "نموذج في الذاكرة للطلاب والكورسات والتسجيلات يمنع التسجيل المكرر ويحترم سعة الكورس.",
      "tracks": {
        "ai": {
          "title": "تمارين بمساعدة تدريجية",
          "what": "أمثلة وتمارين وحالات حدودية؛ توقّع النتيجة قبل طلب تفسيرها.",
          "why": "تكشف فجوات الفهم بدل الاكتفاء بمتابعة إجابة جاهزة.",
          "evidence": "تتوقع المخرجات وتفسر فرقًا بين المتوقع والفعلي."
        },
        "java": {
          "title": "نمذجة الكود بـJava",
          "what": "OOP، encapsulation، composition، interfaces، collections، generics، exceptions؛ أساسيات هياكل البيانات والتعقيد.",
          "why": "تمثّل الطلاب والكورسات والتسجيلات وتختار طريقة التعامل معها.",
          "evidence": "تبني نموذجًا في الذاكرة يمنع التسجيل المكرر، وتضيف سعة للكورس وتختبرها."
        },
        "engineering": {
          "title": "مسؤوليات وقواعد واضحة",
          "what": "Entities، invariants، فصل قواعد العمل عن واجهة الاستخدام، وتصميم بسيط قابل للتغيير.",
          "why": "تعرف أين تعيش قاعدة التسجيل وما الذي يتأثر بتغييرها.",
          "evidence": "تبرر مكان قاعدة السعة وتغيّرها دون نسخها في عدة أماكن."
        },
        "professional": {
          "title": "تفسير القرارات",
          "what": "شرح مسؤولية كل جزء وسبب اختيار collection أو interface وبديل بسيط.",
          "why": "يصبح الكود قابلًا للنقاش والمراجعة.",
          "evidence": "تقدم walkthrough قصيرًا ويستطيع زميل إضافة شرط جديد."
        }
      }
    },
    {
      "id": "04",
      "stage": "stage-1",
      "title": "أدوات المطوّر والاختبار المبكر",
      "platform": "أول repository للمنصة: build من نسخة نظيفة، واختبار لمنع التسجيل المكرر، وPR قابل للمراجعة.",
      "tracks": {
        "ai": {
          "title": "مراجعة محاولة موجودة",
          "what": "عرض محاولتك وسؤال AI عن عيب أو بديل محدد، ثم فحص الـdiff والاقتراحات.",
          "why": "تتعلم تقييم المراجعة وتجنب قبول تغييرات غير مفهومة.",
          "evidence": "تقبل أو ترفض اقتراحًا بناءً على اختبار وتفسير."
        },
        "java": {
          "title": "أدوات المطور والاختبار المبكر",
          "what": "Git، commits، branches، pull requests، Maven، JUnit؛ refactoring وقراءة stack traces.",
          "why": "تحفظ تطور المشروع وتغيّر الكود بثقة.",
          "evidence": "المشروع يُبنى من نسخة نظيفة، واختبار يفشل قبل إصلاح منع التكرار وينجح بعده."
        },
        "engineering": {
          "title": "تسليم تغيير صغير",
          "what": "تفكيك المهمة، acceptance criteria، تعريف الاكتمال، فصل السلوك عن تحسين البنية.",
          "why": "تنجز وحدة قابلة للمراجعة وتعرف متى انتهت.",
          "evidence": "مهمة صغيرة لها كود واختبارات ومعايير قبول مستوفاة."
        },
        "professional": {
          "title": "مراجعة الكود والتوثيق",
          "what": "README مختصر، commit وPR واضحان، طلب مراجعة والاستجابة للتعليقات.",
          "why": "يقدر شخص آخر تشغيل المشروع وفهم التغيير.",
          "evidence": "زميل يشغله من README ويراجع PR ويعرف لماذا تغير السلوك."
        }
      }
    },
    {
      "id": "05",
      "stage": "stage-2",
      "title": "قاعدة البيانات ونمذجة البيانات",
      "platform": "نقل الطلاب والكورسات والتسجيلات لـPostgreSQL، بجدول Enrollment وقيود تمنع التكرار.",
      "tracks": {
        "ai": {
          "title": "نقد نموذج البيانات",
          "what": "مقارنة بدائل Schema، طرح حالات تكشف نقص القيود، وتوليد بيانات اختبار.",
          "why": "تختبر افتراضات النموذج قبل الاعتماد عليه.",
          "evidence": "تراجع اقتراحًا وتثبت ببيانات وتجربة سبب اختيارك."
        },
        "java": {
          "title": "SQL وقاعدة البيانات",
          "what": "PostgreSQL، tables، keys، constraints، joins، transactions، indexes basics، JDBC ثم migrations.",
          "why": "تحفظ الطلاب والكورسات والتسجيلات وتضمن قواعد اتساقها.",
          "evidence": "البيانات تستمر بعد التشغيل، والتكرار الممنوع يفشل، وعملية غير مكتملة تُسترجع."
        },
        "engineering": {
          "title": "نمذجة البيانات",
          "what": "ERD، cardinality، normalization، transaction boundaries وقواعد الحذف والتغيير.",
          "why": "تحول الدومين لنموذج يخدم الاستخدام ويحافظ على الاتساق.",
          "evidence": "تبرر جدول Enrollment وتختبر التسجيل والحذف والفشل."
        },
        "professional": {
          "title": "توثيق نموذج ومناقشته",
          "what": "شرح العلاقات والقيود، تسمية المصطلحات، وتسجيل الأسئلة المفتوحة.",
          "why": "الفريق يفسّر البيانات بالطريقة نفسها.",
          "evidence": "شخص آخر يقرأ الرسم ويكتب استعلام تسجيلات طالب بصورة صحيحة."
        }
      }
    },
    {
      "id": "06",
      "stage": "stage-2",
      "title": "الويب وعقود API",
      "platform": "عقد API لعرض الكورسات والتسجيل وحالات الرفض، متفق عليه قبل التنفيذ.",
      "tracks": {
        "ai": {
          "title": "فهم الأدوات والطلبات",
          "what": "تفسير HTTP requests/responses والأخطاء، واقتراح تجارب تشخيص محددة.",
          "why": "تتعلم تتبع الطلب والتحقق من الفرضيات.",
          "evidence": "تفسر طلبًا فاشلًا وتثبت سبب الفشل بدل الاكتفاء بتخمين النموذج."
        },
        "java": {
          "title": "الويب وعقود API",
          "what": "Client/server، DNS وTCP/TLS بصورة تمهيدية، HTTP، REST، JSON، status codes، headers، curl أو Postman.",
          "why": "تفهم اتصال واجهة المنصة بالـBackend وسلوك الطلبات.",
          "evidence": "تكتب وتجرب طلب تسجيل وتشرح الاستجابات الصحيحة والخاطئة."
        },
        "engineering": {
          "title": "Use Cases وعقود API",
          "what": "Actors، سيناريوهات، request/response، أخطاء، pagination ومعايير القبول.",
          "why": "يكون معنى كل عملية واضحًا للواجهة والاختبار.",
          "evidence": "تعرف عقد عرض الكورسات والتسجيل وحالات الرفض قبل التنفيذ."
        },
        "professional": {
          "title": "التعاون مع Frontend وQA",
          "what": "أسئلة التوضيح، أمثلة الطلبات والنتائج، وصف bug قابل لإعادة الإنتاج.",
          "why": "تتفقوا على السلوك وتقللوا إعادة العمل.",
          "evidence": "زميل ينفذ client أو اختبارًا من العقد دون تخمين."
        }
      }
    },
    {
      "id": "07",
      "stage": "stage-2",
      "title": "Spring Boot وتخزين البيانات",
      "platform": "Backend بـSpring Boot فيه APIs للكورسات والدروس والتسجيل، وتوثيق يقدر غيرك يستخدمه.",
      "tracks": {
        "ai": {
          "title": "أول مساعد برمجي داخل IDE",
          "what": "سياق الملفات، تعليمات محددة، اقتراح أو تغيير صغير، مراجعة diff وتشغيل الاختبارات.",
          "why": "تسرّع التنفيذ مع فهم ما تغيّر.",
          "evidence": "تنفذ endpoint محدودًا وتشرح كل تعديل وتكتشف اقتراحًا غير مناسب."
        },
        "java": {
          "title": "Spring Boot وتخزين البيانات",
          "what": "Dependency injection، configuration، controllers، services، DTOs، validation، error handling، Spring Data JPA مع فهم SQL وmigrations وAPI docs.",
          "why": "تحول البرنامج إلى Backend قابل للاستخدام.",
          "evidence": "APIs للكورسات والدروس والتسجيل، وتتبع طلبًا من controller حتى قاعدة البيانات."
        },
        "engineering": {
          "title": "تنظيم التطبيق",
          "what": "فصل المسؤوليات وحدود modules بسيطة، domain rules، use-case flow ومعيار اكتمال الميزة.",
          "why": "تتحكم في أثر التغيير وتبقي السلوك واضحًا.",
          "evidence": "تغيير قاعدة تسجيل يؤثر على الأجزاء المتوقعة وتثبت ذلك باختبار."
        },
        "professional": {
          "title": "Demo ومراجعة Feature",
          "what": "عرض رحلة المستخدم، شرح القرار، توثيق API وتلقي الملاحظات.",
          "why": "يتأكد الفريق من المعنى والنتيجة قبل التوسع.",
          "evidence": "شخص يستخدم الـAPI من التوثيق وتستوعب طلب تعديل وتشرحه."
        }
      }
    },
    {
      "id": "08",
      "stage": "stage-3",
      "title": "الحسابات والصلاحيات",
      "platform": "حسابات وأدوار: الطالب يشوف تسجيلاته بس، والمدرّس يعدّل كورساته بس، حتى بطلب مباشر.",
      "tracks": {
        "ai": {
          "title": "مراجعة الأمن",
          "what": "استخدام AI لاقتراح حالات سوء استخدام ومراجعة إعدادات أو كود محدد مع تحقق مستقل.",
          "why": "توسّع الحالات التي تفحصها.",
          "evidence": "تكتشف سيناريو وصول غير مصرح وتثبت منعه باختبار."
        },
        "java": {
          "title": "الحسابات والصلاحيات",
          "what": "Spring Security، authentication، authorization، password hashing، sessions/tokens، resource ownership، secrets، CORS/CSRF بحسب آلية الدخول.",
          "why": "تحمي حسابات المنصة والمحتوى والعمليات.",
          "evidence": "طالب لا يقرأ تسجيل طالب آخر ومدرس لا يعدّل كورس غيره، حتى بطلب مباشر."
        },
        "engineering": {
          "title": "قواعد الوصول والمخاطر",
          "what": "مصفوفة أدوار وملكية واشتراطات الوصول، least privilege، وتهديدات بسيطة.",
          "why": "الصلاحيات تتبع قواعد المنصة وتغطي السجل المطلوب.",
          "evidence": "تحول كل قاعدة وصول لحالة نجاح ورفض واختبار قبول."
        },
        "professional": {
          "title": "توصيل الخطر",
          "what": "شرح الأثر والأولوية وخطوات إعادة الإنتاج، وتجنب مشاركة بيانات حساسة.",
          "why": "يتعامل الفريق مع المشكلة بوضوح.",
          "evidence": "تكتب تقرير مشكلة يوضح من يتأثر وكيف نتحقق من الإصلاح."
        }
      }
    },
    {
      "id": "09",
      "stage": "stage-3",
      "title": "استراتيجية الاختبار والجودة",
      "platform": "اختبارات لرحلة الدرس والاختبار والنتيجة، تكشف أي عيب في احتساب الدرجة قبل إصلاحه.",
      "tracks": {
        "ai": {
          "title": "توليد حالات اختبار مفيدة",
          "what": "Boundary cases، negative cases، fixtures، نقد assertions وفحص الاختبارات المقترحة.",
          "why": "توسع التغطية حول المخاطر الفعلية.",
          "evidence": "اختبار مقترح يكشف عيبًا حقيقيًا وتفسر ما يثبته وما لا يثبته."
        },
        "java": {
          "title": "استراتيجية اختبار عملية",
          "what": "JUnit، Mockito عند الحاجة، integration tests، Testcontainers، Spring test support، واختبارات رحلة أساسية.",
          "why": "تتحقق من قواعد العمل والربط الفعلي بقاعدة البيانات.",
          "evidence": "رحلة درس واختبار ونتيجة تعمل، وعيب في احتساب الدرجة يفشل الاختبار قبل إصلاحه."
        },
        "engineering": {
          "title": "الجودة ودليل الاكتمال",
          "what": "Test pyramid بصورة عملية، regression risks، acceptance tests ومعايير إصدار.",
          "why": "تربط الاختبار بسلوك مهم للمستخدم.",
          "evidence": "لكل قاعدة حرجة اختبار مناسب، وتغيير مطلوب لا يكسر الرحلة الأساسية."
        },
        "professional": {
          "title": "التعاون على الجودة",
          "what": "Bug report، مراجعة مع QA، شرح حدود الاختبار وتوثيق قرار الإصلاح.",
          "why": "يسهل إعادة إنتاج الأخطاء وتحديد الأولويات.",
          "evidence": "زميل يعيد إنتاج عيب من تقريرك ويتحقق من إصلاحه."
        }
      }
    },
    {
      "id": "10",
      "stage": "stage-3",
      "title": "التشغيل والنشر وأول إصدار",
      "platform": "رحلة طالب كاملة على بيئة منشورة: دخول، اختيار كورس، تسجيل، درس، اختبار، ونتيجة.",
      "tracks": {
        "ai": {
          "title": "مهمة Agent صغيرة",
          "what": "نطاق ملفات وأدوات واضح، checkpoints، قراءة diff، صلاحيات محدودة، تحقق من التشغيل.",
          "why": "تفوض خطوة محدودة وتحتفظ بالقدرة على مراجعتها.",
          "evidence": "الـAgent ينجز مهمة مثل إعداد تشغيل أو توثيق وتتحقق منها من بيئة نظيفة."
        },
        "java": {
          "title": "التشغيل والنشر",
          "what": "Linux basics، Docker وCompose، إعدادات البيئات، CI/CD، secrets، health checks، logs، migrations وbackup/restore.",
          "why": "تسلّم الخدمة وتتابعها ويكون عندك طريق للتعافي.",
          "evidence": "تشغيل من بيئة نظيفة، pipeline تلقائي، نشر تحديث واسترجاع نسخة بيانات تجريبية."
        },
        "engineering": {
          "title": "أول إصدار قابل للتسليم",
          "what": "MVP، ترتيب الأولويات، release checklist، migrations، rollback وخطة تشغيل بسيطة.",
          "why": "توصل رحلة طالب كاملة بدل Features منفصلة.",
          "evidence": "تسجيل دخول ثم اختيار كورس وتسجيل ودرس واختبار ونتيجة على بيئة منشورة."
        },
        "professional": {
          "title": "Demo وتسليم وتشخيص",
          "what": "عرض رحلة مستخدم، release notes، runbook وتحديث عن عائق أو عطل.",
          "why": "المستخدم والفريق يعرفوا ما تم وما يحتاج تدخلًا.",
          "evidence": "شخص يشغّل الخدمة ويتبع خطوات تشخيص مشكلة من وثائقك."
        }
      }
    },
    {
      "id": "11",
      "stage": "stage-4",
      "title": "التزامن واتساق القواعد",
      "platform": "حماية آخر مقعد في الكورس من تسجيلات متزامنة، باختبار يثبت النتيجة.",
      "tracks": {
        "ai": {
          "title": "AI كشريك تحليل",
          "what": "تحليل change impact، بدائل التصميم، نقد assumptions، وتقديم سياق من ملفات محددة.",
          "why": "تختبر فكرتك قبل وأثناء التنفيذ.",
          "evidence": "تختار بديلًا بناءً على قيد وتجربة، وتوثّق سبب رفض بديل آخر."
        },
        "java": {
          "title": "Java أعمق وConcurrency",
          "what": "Streams، immutability، JVM/memory basics، threads، executors، synchronization، race conditions، virtual threads وتحليل التعقيد.",
          "why": "تفهم سلوك الكود تحت التزامن وتختار أدوات مناسبة.",
          "evidence": "تعيد إنتاج تسجيلات متزامنة تكسر السعة ثم تصلحها وتثبت السلوك."
        },
        "engineering": {
          "title": "اتساق قواعد المنصة",
          "what": "Invariants، transaction boundaries، optimistic/pessimistic locking ومعنى النجاح وقت التنافس.",
          "why": "آخر مقعد في الكورس ما يتباعش لأكثر من طالب.",
          "evidence": "اختبار متزامن يثبت النتيجة وتشرح تكلفة اختيارك."
        },
        "professional": {
          "title": "الملكية والتقدير",
          "what": "تفكيك Feature، تحديد dependencies والمخاطر، وتحديث التقدير مع التعلم.",
          "why": "الفريق يعتمد على التزام واضح.",
          "evidence": "تسلّم خطة صغيرة وتبلّغ مبكرًا لما معلومة جديدة تغيّرها."
        }
      }
    },
    {
      "id": "12",
      "stage": "stage-4",
      "title": "الأداء والمتطلبات غير الوظيفية",
      "platform": "تسريع عرض الكورسات والتقدّم بقياس محدد، وحماية ملفات الدروس من الوصول غير المصرح.",
      "tracks": {
        "ai": {
          "title": "تحقيق مشكلة بالأدلة",
          "what": "تحليل query plans وlogs منزوعة البيانات الحساسة بمساعدة AI واقتراح تجارب.",
          "why": "تسرّع التحقيق.",
          "evidence": "تقيس قبل التغيير وبعده وتفصل الفرضية عن السبب المثبت."
        },
        "java": {
          "title": "أداء البيانات والمحتوى",
          "what": "EXPLAIN، indexes، N+1، fetch strategies، pagination، connection pools، k6، Redis عند الحاجة، object storage وsigned URLs.",
          "why": "عرض الكورسات والتقدم والمحتوى يفضل عمليًا مع نمو البيانات.",
          "evidence": "تحسّن endpoint بطيئًا بقياس محدد وتثبت منع الوصول لملف غير مصرح."
        },
        "engineering": {
          "title": "متطلبات غير وظيفية",
          "what": "Latency، throughput، أحجام البيانات، كلفة التخزين، cache invalidation وسياسة الوصول للمحتوى.",
          "why": "سريع وقابل للتوسع يتحولوا لمتطلبات قابلة للفحص.",
          "evidence": "تحدد حملًا مستهدفًا ونتيجة مقبولة وتختبرهما."
        },
        "professional": {
          "title": "عرض النتائج",
          "what": "Performance report قصير وشرح trade-offs.",
          "why": "القرار يتراجع بناءً على أدلة.",
          "evidence": "توضح التحسن والتكلفة وحدود الاختبار."
        }
      }
    },
    {
      "id": "13",
      "stage": "stage-4",
      "title": "التكاملات والمهام الخلفية",
      "platform": "الدفع والإشعارات: webhook دفع مكرر ما يكررش التسجيل، وتعطل البريد ما يضيّعش المهمة.",
      "tracks": {
        "ai": {
          "title": "Agent ينفذ Feature محدودة",
          "what": "تعليمات المشروع، checkpoints، حدود الملفات والأدوات، مراجعة التغييرات والتحقق من معايير القبول.",
          "why": "تفوض عملًا أكبر مع الاحتفاظ بالتحكم.",
          "evidence": "تكتشف انحرافًا عن القواعد وتصححه قبل التسليم."
        },
        "java": {
          "title": "التكاملات والمهام الخلفية",
          "what": "HTTP clients، timeouts، retries/backoff، idempotency، webhooks، scheduling، RabbitMQ مثلًا، DLQ ومقدمة outbox.",
          "why": "المدفوعات والإشعارات تتحمل التأخير والتكرار والفشل.",
          "evidence": "Webhook دفع مكرر لا يكرر التسجيل أو الأثر المالي، وتعطل البريد لا يفقد المهمة."
        },
        "engineering": {
          "title": "رحلة الدفع والتسجيل",
          "what": "Order/payment/enrollment states، refunds، reconciliation وفصل الحقائق المالية عن رسائل النجاح.",
          "why": "نجاح الدفع والتسجيل والإشعار مش عملية واحدة مضمونة تلقائيًا.",
          "evidence": "ترسم وتختبر مسار دفع ناجح وفاشل ومتأخر ومكرر."
        },
        "professional": {
          "title": "التعاون مع جهات خارجية",
          "what": "قراءة integration docs، طرح أسئلة دقيقة، توثيق incidents وحدود المسؤولية.",
          "why": "التكامل يعتمد على أكثر من فريق ونظام.",
          "evidence": "تقدم طلب دعم فيه correlation ID وخطوات ونتيجة متوقعة."
        }
      }
    },
    {
      "id": "14",
      "stage": "stage-4",
      "title": "أول ميزة AI في المنتج",
      "platform": "مسودة أسئلة يولّدها AI ويراجعها المدرّس: يعدّلها أو يرفضها، مع قياس الجودة والتكلفة والزمن.",
      "tracks": {
        "ai": {
          "title": "أول دمج Model في المنتج",
          "what": "Model APIs، prompts/templates، tokens، context limits، structured outputs، streaming، timeouts، budgets ومجموعة تقييم صغيرة؛ Spring AI اختيار Java.",
          "why": "تضيف مساعدة حقيقية للمدرس.",
          "evidence": "توليد مسودة أسئلة يراجعها المدرس، مع قياس الجودة والتكلفة والزمن ومعالجة الفشل."
        },
        "java": {
          "title": "تشغيل تكامل AI",
          "what": "إعداد المفاتيح، client integration، validation للمخرجات، rate limiting، حفظ حالة المهمة ومراقبة الاستدعاءات.",
          "why": "استدعاء النموذج يبقى جزءًا من خدمة قابلة للتشغيل.",
          "evidence": "تعطل المزود أو رجوع JSON غير صالح لا يكسر رحلة المدرس."
        },
        "engineering": {
          "title": "تحديد قيمة الميزة",
          "what": "تعريف المستخدم والنتيجة المطلوبة، baseline يدوي، review workflow ومعيار نجاح.",
          "why": "تختبر هل AI يوفر وقتًا ويحافظ على جودة مقبولة.",
          "evidence": "مقارنة على أمثلة ثابتة توضح فائدة الميزة وأين تحتاج مراجعة."
        },
        "professional": {
          "title": "توضيح حدود الناتج",
          "what": "عرض المسودة والافتراضات وطلب تقييم المستخدم.",
          "why": "المستخدم يعرف ما يحتاج مراجعة.",
          "evidence": "المدرس يقدر يعدّل ويرفض الناتج ويبلغ عن عيب محدد."
        }
      }
    },
    {
      "id": "15",
      "stage": "stage-5",
      "title": "مساعد قائم على المحتوى",
      "platform": "مساعد يجاوب الطالب من محتوى الكورسات المسموح له بيه بس، مع مصادر واختبارات تمنع التسريب.",
      "tracks": {
        "ai": {
          "title": "مساعد كورسات قائم على المحتوى",
          "what": "Embeddings، chunking، retrieval، metadata filtering، pgvector مثلًا، RAG، citations وتقييم retrieval والإجابة منفصلين.",
          "why": "الطالب يسأل عن محتوى مسموح له.",
          "evidence": "أسئلة معروفة وخارج المحتوى، واختبارات تمنع استرجاع بيانات طالب أو كورس غير مصرح."
        },
        "java": {
          "title": "بنية البحث والاسترجاع",
          "what": "Ingestion jobs، parsing، indexing، تحديث وحذف الفهارس، metadata وحدود modules.",
          "why": "محتوى المساعد يفضل متسقًا مع المحتوى والصلاحيات الحالية.",
          "evidence": "تعديل درس أو سحب صلاحية ينعكس على الاسترجاع وفق سياسة موثقة."
        },
        "engineering": {
          "title": "حدود السلطة والثقة",
          "what": "Threat modeling، prompt injection، سياسات المصادر والامتناع، authorization قبل الاسترجاع والتنفيذ.",
          "why": "المحتوى أو النموذج ما يغيّروش قواعد صلاحيات النظام.",
          "evidence": "اختبارات عدائية تحاول تسريب محتوى أو تنفيذ تعليمات مضمنة وتُرفض."
        },
        "professional": {
          "title": "التواصل عن الجودة والمخاطر",
          "what": "شرح ما قسناه وما لم نقسه، حدود الميزة وخطة طرح تدريجي.",
          "why": "اتخاذ قرار إطلاق واضح.",
          "evidence": "تعرض نجاحًا وفشلًا ومعايير إيقاف أو تحسين الميزة."
        }
      }
    },
    {
      "id": "16",
      "stage": "stage-5",
      "title": "المعمارية وتحويل المنصة لـSaaS",
      "platform": "المنصة تخدم مراكز ومدرّسين ببيانات معزولة، وخطط واشتراكات، وخطة هجرة تدريجية.",
      "tracks": {
        "ai": {
          "title": "مراجعة معمارية بمساعدة AI",
          "what": "نقد الحدود والاعتماديات وخطط الهجرة ومقارنة السيناريوهات.",
          "why": "توسّع البدائل اللي فحصتها.",
          "evidence": "قرار معماري مدعوم بقيود وتجربة ويمكنك الدفاع عنه دون الرجوع لإجابة النموذج."
        },
        "java": {
          "title": "Architecture وMulti-tenancy",
          "what": "Modular monolith، DDD عملي، bounded contexts، dependency boundaries، isolation strategies، tenant context، tenant-aware queries/cache/jobs واختبارات العزل؛ Spring Modulith خيار مساعد.",
          "why": "تخدم مدرسين ومراكز ببيانات وحدود واضحة.",
          "evidence": "مركز لا يصل لبيانات مركز آخر عبر API أو ملفات أو jobs أو cache، باختبارات."
        },
        "engineering": {
          "title": "تحويل المنصة لـSaaS",
          "what": "Tenant، عضويات وأدوار، plans/entitlements، quotas، onboarding، دعم وتشغيل وقرار المشترك والمستقل.",
          "why": "نموذج المنتج يختلف عن منصة مدرس واحد.",
          "evidence": "خريطة سياقات وADR وخطة هجرة تدريجية واختبارات قبول لكل خطة."
        },
        "professional": {
          "title": "قيادة نقاش تصميم",
          "what": "RFC/ADR، الاستماع للاعتراض وتيسير قرار.",
          "why": "القرارات المؤثرة تحتاج فهمًا مشتركًا.",
          "evidence": "النقاش ينتهي بقرار وأسباب ومخاطر ومسؤول متابعة."
        }
      }
    },
    {
      "id": "17",
      "stage": "stage-5",
      "title": "الاعتمادية وإدارة الحوادث",
      "platform": "مراقبة المنصة بـmetrics وlogs وtraces، وتمرين عطل في اعتماد خارجي واستعادة الخدمة.",
      "tracks": {
        "ai": {
          "title": "AI في التحقيق التشغيلي",
          "what": "تلخيص signals وفرضيات عطل من سياق منضبط والتحقق بالقياسات.",
          "why": "تسرّع التشخيص وتحتفظ بسجل الأدلة.",
          "evidence": "تؤكد أو تستبعد الفرضيات بتجارب ومؤشرات فعلية."
        },
        "java": {
          "title": "Observability وReliability",
          "what": "Metrics، logs، traces، OpenTelemetry، Micrometer، Prometheus/Grafana، profiling/JFR، load tests، graceful degradation وbackup/restore drills.",
          "why": "تعرف أثر الأعطال وتستعيد الخدمة.",
          "evidence": "حقن فشل في اعتماد خارجي واكتشافه وتقليل أثره واستعادة الخدمة وفق هدف محدد."
        },
        "engineering": {
          "title": "SLOs وإدارة الحوادث",
          "what": "SLIs/SLOs، error budgets، capacity، RTO/RPO، runbooks، postmortems وأولوية تحسين الاعتمادية.",
          "why": "توازن بين تطوير الميزات واستقرار الخدمة.",
          "evidence": "تمرين incident موثق بإجراءات متابعة لها أصحاب ومواعيد."
        },
        "professional": {
          "title": "قيادة Incident وتوجيه زميل",
          "what": "توزيع التحقيق، تحديث أصحاب المصلحة، فصل الحقائق عن الفرضيات وتوجيه بلا لوم.",
          "why": "تقليل الارتباك وتحسين تعلم الفريق.",
          "evidence": "زميل يتولى جزءًا من التحقيق اعتمادًا على شرحك والـRunbook."
        }
      }
    },
    {
      "id": "18",
      "stage": "stage-5",
      "title": "الأنظمة الموزعة وقرارات التوسع",
      "platform": "مساعد يقرأ تقدّم الطالب ويقترح خطة دون تغيير تسجيل أو درجة، وفصل خدمة عند مبرر مثبت فقط.",
      "tracks": {
        "ai": {
          "title": "Tool Calling وWorkflows",
          "what": "أدوات بعقود محددة، schema validation، permissions، bounded workflows، approval للعمليات الحساسة، evals وaudit trails.",
          "why": "المساعد ينفذ وظائف محددة بأمان.",
          "evidence": "يقرأ تقدم الطالب ويقترح خطة، ولا يغيّر تسجيلًا أو درجة خارج صلاحيات وسياسة التطبيق."
        },
        "java": {
          "title": "Distributed Systems عند وجود احتياج",
          "what": "Partial failure، consistency، delivery semantics، ordering، idempotent consumers، outbox، sagas، messaging أعمق وفصل خدمة عند مبرر واضح.",
          "why": "تفهم تبعات توزيع النظام.",
          "evidence": "إعادة إرسال حدث لا تكرر الأثر، وفشل جزء من الرحلة له تعافٍ واختبارات واضحة."
        },
        "engineering": {
          "title": "قرار التوسع والمفاضلات",
          "what": "Scale estimates، cost model، buy/build، monolith/services، contracts وخطة migration.",
          "why": "التعقيد الإضافي يكون له عائد.",
          "evidence": "تثبت bottleneck أو حاجة استقلال وتقارن حلولًا وخطة رجوع."
        },
        "professional": {
          "title": "التفاوض والتوجيه",
          "what": "تفاوض النطاق والوقت والجودة، delegation، mentoring وحسم الخلاف بدليل.",
          "why": "أثر السنيور يشمل تمكين الآخرين.",
          "evidence": "زميل يسلّم جزءًا مستقلًا، وإنت تراجع المخاطر والنتيجة دون تنفيذ كل التفاصيل."
        }
      }
    },
    {
      "id": "19",
      "stage": "stage-6",
      "title": "المنصة المشتركة واقتصادياتها",
      "platform": "بيئات قابلة للتكرار لعدة فرق، وتكلفة مقاسة لكل مركز وطالب وجلسة AI.",
      "tracks": {
        "ai": {
          "title": "تشغيل AI على مستوى منتج",
          "what": "Versioned prompts/evals، model selection، routing/fallback، caching، budgets، monitoring، سياسات البيانات ومراجعة تغييرات المزود.",
          "why": "الجودة والتكلفة والسلوك يتابعوا مع تغير الاستخدام والنماذج.",
          "evidence": "تغيير model أو prompt يمر باختبارات وإطلاق تدريجي ورجوع ومقارنة تكلفة وجودة."
        },
        "java": {
          "title": "هندسة منصة مشتركة",
          "what": "Cloud architecture، IAM/networking، Infrastructure as Code مثل Terraform، IaC review، deployment strategies، supply-chain security وKubernetes عند مبرر تشغيلي.",
          "why": "فرق متعددة تبني وتشغّل على أسس موثوقة.",
          "evidence": "إنشاء بيئة قابلة للتكرار واختبار عزلها واستعادتها وقياس تكلفة تشغيلها."
        },
        "engineering": {
          "title": "اقتصاديات المنصة",
          "what": "Cost per tenant/student/AI session، ميزانيات، quotas، دعم العملاء، أولويات الاستثمار ومخاطر الموردين.",
          "why": "النمو يفضل قابلًا للاستمرار.",
          "evidence": "قرار تقني يحسن تكلفة أو تجربة مقاسة مع توضيح آثاره الجانبية."
        },
        "professional": {
          "title": "التواصل مع الإدارة والمنتج",
          "what": "Executive summaries، طرح خيارات بلغة أثر وتكلفة ومخاطر.",
          "why": "تربط الاستثمار الهندسي بهدف المؤسسة.",
          "evidence": "صاحب قرار غير تقني يفهم البدائل ويقدر يختار بينها."
        }
      }
    },
    {
      "id": "20",
      "stage": "stage-6",
      "title": "المعمارية والاستراتيجية عبر الفرق",
      "platform": "حوكمة APIs والأحداث بين فرق المنصة، وهجرات مشتركة دون كسر المستهلكين.",
      "tracks": {
        "ai": {
          "title": "تمكين الفرق من AI",
          "what": "قوالب مهام وسياق، ضوابط أدوات، تقييم workflows ومقاييس جودة وإعادة عمل.",
          "why": "الفائدة تمتد للفريق ويمكن قياسها.",
          "evidence": "Pilot يوضح زمن التسليم والعيوب وإعادة العمل ثم توصية مبنية على النتائج."
        },
        "java": {
          "title": "Architecture عبر فرق",
          "what": "API/event governance، compatibility، schema evolution، platform boundaries، migration at scale ومعايير reliability/security.",
          "why": "تغييرات فريق ما تكسرش باقي المنصة.",
          "evidence": "هجرة مشتركة بين فرق دون توقف غير مخطط أو كسر مستهلكين."
        },
        "engineering": {
          "title": "Technical Strategy وPortfolio",
          "what": "Capability maps، build/buy، sequencing، technical debt، investment priorities وربط roadmap التقنية بالمنتج.",
          "why": "توجه مجهود عدة فرق نحو أهم مشكلات المؤسسة.",
          "evidence": "استراتيجية تتحول لمبادرات قابلة للتسليم والقياس وتتراجع مع الأدلة."
        },
        "professional": {
          "title": "التأثير من غير سلطة مباشرة",
          "what": "Stakeholder alignment، proposals، إدارة الخلاف وmentoring لقادة تقنيين.",
          "why": "نطاق العمل أكبر من صلاحيات شخص واحد.",
          "evidence": "فرق تتبنى قرارًا وتنفذه وتستمر عليه بعد خروجك من التفاصيل اليومية."
        }
      }
    },
    {
      "id": "21",
      "stage": "stage-6",
      "title": "التخصص العميق وبناء القادة",
      "platform": "تخصص عميق يحل مشكلات متكررة في المنصة، وقادة وفرق يكمّلوا الاتجاه باستقلالية.",
      "tracks": {
        "ai": {
          "title": "اختيار الفرص وحدود الأتمتة",
          "what": "تقييم أين يفيد AI وأين تكفي قواعد أو بحث تقليدي، مع استراتيجية خروج من اعتماد مكلف.",
          "why": "تختار استثمارًا مناسبًا للمشكلة.",
          "evidence": "تقبل أو ترفض مشروع AI بمقارنة قابلة للمراجعة."
        },
        "java": {
          "title": "تخصص عميق حسب الاتجاه",
          "what": "اختيار مجال: JVM/performance، distributed systems، security، data، platform أو AI systems.",
          "why": "تبني عمقًا تحل به مشكلات صعبة ومتكررة.",
          "evidence": "حل يؤثر على عدة أنظمة أو فرق ومعرفة قابلة لإعادة الاستخدام."
        },
        "engineering": {
          "title": "Staff / Architect Scope",
          "what": "مشكلة غامضة عبر فرق، target architecture، خارطة انتقال، تبعات تنظيمية وقياس أثر طويل المدى.",
          "why": "توسع قدرة المؤسسة على البناء والتغيير.",
          "evidence": "تحسن مستمر في التسليم أو الاعتمادية أو التكلفة أو نمو المنتج عبر أكثر من فريق."
        },
        "professional": {
          "title": "بناء قادة واستمرارية",
          "what": "Coaching، succession، communities of practice وتوزيع المعرفة والملكية.",
          "why": "النتيجة تستمر دون اعتماد دائم عليك.",
          "evidence": "قادة وفرق يطوّروا الاتجاه ويتخذوا قرارات مناسبة باستقلالية."
        }
      }
    }
  ],
  "statuses": [
    {
      "id": "not-started",
      "label": "لم أبدأ"
    },
    {
      "id": "learning",
      "label": "أتعلّم"
    },
    {
      "id": "applied",
      "label": "طبّقت"
    },
    {
      "id": "can-explain",
      "label": "أقدر أشرح وأعدّل"
    }
  ]
}
