مطور باك إند
بنك اسئلة انترفيو مطور باك إند ده بيغطي 15 سؤال في API design، Database، System design، Scalability، Debugging، Security. كل سؤال بيحاكي مستوى من مبتدئ لمتوسط، عشان تتمرن على نفس النقاط اللي لجنة التوظيف بتركز عليها وتدخل وانت جاهز.
إيه اللي بتختبره المقابلة دي
- API design
- Database
- System design
- Scalability
- Debugging
- Security
اسئلة انترفيو مطور باك إند
- سؤال 1نقطة التركيز: API design
اشرح لي كيف ستقوم بتصميم واجهة برمجة تطبيقات REST (API) لتطبيق SaaS متعدد المستأجرين. ما هي القرارات الرئيسية التي ستتخذها مبكرًا؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي استراتيجيات عزل المستأجرين (مخطط لكل مستأجر مقابل مستوى الصف)، تحديد الإصدارات بناءً على URL أو الـ header، تصميم ترقيم الصفحات، غلاف أخطاء متسق، فصل المصادقة/التفويض (authorization). كن مستعدًا لمناقشة: كيف ستعزل بيانات المستأجرين على مستوى API؟ ما هي استراتيجية تحديد الإصدارات التي ستختارها ولماذا؟ كيف ستتعامل مع التغييرات الجذرية (breaking changes) التي تكسر التوافق مع المستهلكين الحاليين؟
- سؤال 2نقطة التركيز: Database
حدثني عن موقف اضطررت فيه إلى تحسين استعلام قاعدة بيانات بطيء في بيئة الإنتاج. ما هو الوضع، وكيف قمت بتشخيصه؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي استخدام EXPLAIN/ANALYZE، فهم أنواع الفهارس (B-tree, GIN, جزئي)، الوعي باستعلامات N+1، ذكر تخزين خطة الاستعلام مؤقتًا، اختبار التحميل بعد الإصلاح. كن مستعدًا لمناقشة: ما هي الأدوات التي استخدمتها لتحديد نقطة الاختناق؟ كيف تحققت من أن إصلاحك لم يتسبب في أي مشاكل جديدة (regressions)؟
- سؤال 3نقطة التركيز: System design
كيف ستقوم بتصميم الواجهة الخلفية لنظام إشعارات في الوقت الفعلي يحتاج إلى دعم ملايين المستخدمين؟ اشرح لي البنية المعمارية.
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي اختيار قائمة انتظار الرسائل (Kafka, RabbitMQ, Redis Streams)، استراتيجيات التوزيع (fan-out)، استمرارية الرسائل غير المسلمة، إدارة الاتصالات، التوسع الأفقي لخوادم WebSocket ذات الحالة عبر الجلسات الثابتة (sticky sessions) أو النشر/الاشتراك (pub/sub). كن مستعدًا لمناقشة: كيف ستتعامل مع المستخدمين غير المتصلين بالإنترنت عند إرسال إشعار؟ كيف ستبدو استراتيجية إعادة المحاولة والرسائل المعلقة (dead-letter) الخاصة بك؟ كيف ستقوم بتوسيع طبقة WebSocket أفقيًا؟
- سؤال 4نقطة التركيز: Scalability
اشرح كيف ستقوم بتطبيق تحديد المعدل (rate limiting) لواجهة برمجة تطبيقات عامة (public API). ما هي الأساليب التي استخدمتها أو فكرت فيها؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي خوارزميات سلة الرموز (token bucket) مقابل النافذة المنزلقة (sliding window)، العدادات الموزعة المدعومة بـ Redis، استجابات HTTP 429 المناسبة مع رأس Retry-After، التمييز بين الحدود للمستخدمين المصادق عليهم والمجهولين. كن مستعدًا لمناقشة: كيف ستتعامل مع تحديد المعدل في بيئة موزعة تحتوي على عدة مثيلات للخادم؟ ماذا ستبلغ العميل عندما يصل إلى الحد الأقصى؟
- سؤال 5نقطة التركيز: Debugging
صف حادثة إنتاج ساعدت في تصحيحها حيث تبين أن السبب الجذري كان مختلفًا عن الأعراض الأولية. كيف تعاملت معها؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي الاستجابة المنظمة للحوادث، استخدام السجلات/المقاييس/التتبعات (logs/metrics/traces)، تصحيح الأخطاء القائم على الفرضيات، ثقافة مراجعة ما بعد الحوادث (post-mortem) بدون لوم، تدابير وقائية ملموسة (تنبيهات، قواطع دوائر، اختبارات أفضل). كن مستعدًا لمناقشة: ما هي أدوات المراقبة (observability tools) التي اعتمدت عليها؟ كيف منعت تكرار نفس الفئة من المشكلات؟
- سؤال 6نقطة التركيز: Security
كيف تتعامل مع تأمين واجهة برمجة تطبيقات (API) تتعامل مع بيانات المستخدم الحساسة؟ ما هي طبقات الدفاع التي ستضعها؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي التحقق من المدخلات (القوائم البيضاء بدلاً من القوائم السوداء)، استخدام الاستعلامات ذات المعلمات/ORM، المصادقة مقابل التفويض، الوعي بقائمة OWASP Top 10، إدارة الأسرار (vault, env-based)، التشفير في حالة السكون وأثناء النقل. كن مستعدًا لمناقشة: كيف ستحمي من حقن SQL وثغرات التعيين الجماعي (mass-assignment)؟ ما هي استراتيجيتك لإدارة الأسرار وبيانات الاعتماد في خدمة منشورة؟
- سؤال 7نقطة التركيز: System design
تحتاج إلى ترحيل واجهة خلفية متجانسة (monolithic backend) إلى خدمات مصغرة (microservices). كيف ستقرر ما الذي ستستخرجه أولاً، وكيف ستدير عملية الانتقال؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي السياقات المحددة الموجهة بالمجال (domain-driven bounded contexts)، نمط شجرة التين الخانقة (strangler fig pattern)، بوابة API، الاتصال القائم على الأحداث لمزامنة البيانات، الترحيل التدريجي باستخدام علامات الميزات (feature flags)، تجنب النظام المتجانس الموزع (distributed monolith). كن مستعدًا لمناقشة: كيف ستتعامل مع البيانات المشتركة بين النظام المتجانس والخدمة الجديدة؟ ما هي الأنماط التي ستستخدمها للحفاظ على عمل النظام أثناء الترحيل؟
- سؤال 8نقطة التركيز: Database
كيف ستقوم بتصميم مخطط قاعدة بيانات لمنصة محتوى حيث يمكن للمستخدمين إنشاء منشورات والتعليق عليها ومتابعة مستخدمين آخرين؟ اشرح لي تصميم جداولك.
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي مخططًا مُطبعًا (normalized schema) مع مفاتيح خارجية واضحة، جدول وصل (junction table) للمتابعات، فهارس مركبة على (user_id, created_at)، استراتيجية التوزيع عند الكتابة مقابل التوزيع عند القراءة (fan-out-on-write vs fan-out-on-read) للموجزات، استراتيجية ترقيم الصفحات (keyset vs offset). كن مستعدًا لمناقشة: كيف ستنشئ موجزًا شخصيًا بكفاءة؟ ما هي استراتيجية الفهرسة التي ستستخدمها لجداول المتابعات والتعليقات؟
- سؤال 9نقطة التركيز: API design
حدثني عن موقف اضطررت فيه للاختيار بين بناء ميزة بسرعة وبنائها 'بالطريقة الصحيحة'. ما هي المقايضات التي قمت بها؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي البراغماتية، القدرة على توضيح المقايضات بوضوح، دليل على تتبع الديون التقنية، الوعي بالوقت الذي تصبح فيه الاختصارات مكلفة، مهارات التواصل مع أصحاب المصلحة. كن مستعدًا لمناقشة: كيف قمت بإبلاغ أصحاب المصلحة بالمقايضات؟ هل عدت في أي وقت لمعالجة الديون التقنية؟
- سؤال 10نقطة التركيز: API design
كيف ستقوم بتطبيق نقطة نهاية idempotent لمعالجة المدفوعات (تضمن عدم تكرار التنفيذ عند إعادة المحاولة)؟ ما هي سيناريوهات الفشل التي تحتاج إلى التعامل معها؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي مفاتيح التطابق (idempotency keys) المخزنة على جانب الخادم، دلالات 'مرة واحدة بالضبط' (exactly-once semantics) عبر القيود الفريدة، آلة الحالة لحالة الدفع، التعامل مع مهلات بوابة الدفع باستخدام مهام التسوية، نمط صندوق الصادر للمعاملات (transactional outbox pattern). كن مستعدًا لمناقشة: كيف ستتعامل مع حالة انتهاء مهلة بوابة الدفع؟ ما هو الدور الذي يلعبه مفتاح التطابق في تصميمك؟
- سؤال 11نقطة التركيز: Debugging
صف منهجك في كتابة اختبارات التكامل لخدمة الواجهة الخلفية التي تعتمد على قاعدة بيانات وذاكرة تخزين مؤقت (cache) وواجهة برمجة تطبيقات خارجية (external API).
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي حاويات الاختبار (test containers) أو قواعد البيانات في الذاكرة، عزل الاختبار الواضح، إدارة التجهيزات (fixture management)، محاكاة واجهات برمجة التطبيقات الخارجية عند حدود HTTP (وليس المحاكاة العميقة)، ممارسات استقرار CI، الوعي بهرم الاختبار. كن مستعدًا لمناقشة: متى ستستخدم المحاكاة (mocks) مقابل التبعيات الحقيقية في الاختبارات؟ كيف تتعامل مع الاختبارات المتقلبة (flaky tests) في CI؟
- سؤال 12نقطة التركيز: Scalability
ما هي الاستراتيجيات التي تستخدمها للتعامل مع المهام الخلفية والمعالجة غير المتزامنة في نظام الواجهة الخلفية؟ أعطني مثالاً ملموسًا.
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي اختيار قائمة انتظار المهام (Celery, Sidekiq, Bull)، دلالات 'مرة واحدة بالضبط' مقابل 'مرة واحدة على الأقل'، قوائم انتظار الرسائل المعلقة (dead-letter queues)، تطابق المهام (job idempotency)، لوحات معلومات المراقبة، التراجع الأسي (exponential backoff) لإعادة المحاولات. كن مستعدًا لمناقشة: كيف تضمن عدم معالجة مهمة مرتين؟ كيف تراقب وتنبه بشأن المهام الفاشلة؟
- سؤال 13نقطة التركيز: Scalability
كيف ستقوم بتطبيق طبقة تخزين مؤقت (caching layer) لواجهة برمجة تطبيقات (API) تقدم بيانات تتغير نادرًا ولكن يتم قراءتها آلاف المرات في الثانية؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي أنماط التخزين المؤقت الجانبي (cache-aside) مقابل الكتابة المباشرة (write-through)، استراتيجيات TTL، منع تدافع الطلبات على الكاش (cache stampede) (القفل، إعادة الحساب المبكر)، التدهور السلس (graceful degradation)، التخزين المؤقت متعدد الطبقات (CDN, التطبيق، ذاكرة التخزين المؤقت لاستعلام قاعدة البيانات). كن مستعدًا لمناقشة: كيف ستتعامل مع إبطال التخزين المؤقت عندما تتغير البيانات الأساسية؟ ماذا يحدث إذا تعطلت ذاكرة التخزين المؤقت لديك بالكامل؟
- سؤال 14نقطة التركيز: Security
اشرح كيف ستقوم بتطبيق التحكم في الوصول المستند إلى الأدوار (RBAC) في خدمة الواجهة الخلفية. كيف يختلف عن التحكم في الوصول المستند إلى السمات (ABAC)؟
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي فصل الأدوار عن الأذونات، التنفيذ القائم على البرمجيات الوسيطة/المزخرفات (middleware/decorator-based enforcement)، فحوصات ملكية الموارد، ABAC للسياسات الديناميكية، مبدأ الحد الأدنى من الامتيازات، تسجيل تدقيق قرارات الوصول. كن مستعدًا لمناقشة: كيف ستتعامل مع الأذونات التي تعتمد على مالك المورد؟ أين ستفرض فحوصات التفويض في قاعدة التعليمات البرمجية الخاصة بك؟
- سؤال 15نقطة التركيز: Debugging
تلقيت تقريرًا يفيد بأن زمن الاستجابة P99 لواجهة برمجة التطبيقات (API) الخاصة بك قد ارتفع من 200 مللي ثانية إلى ثانيتين. اشرح لي عملية التحقيق الخاصة بك.
إيه اللي بتغطيه الإجابة القوية
الإجابة القوية تغطي النهج المنهجي (التحقق من المقاييس، الربط مع عمليات النشر، عزل المكونات)، التتبع الموزع (distributed tracing)، تحليل سجلات الاستعلامات البطيئة لقاعدة البيانات، فحوصات تشبع مجمع الاتصالات، التخفيفات قصيرة المدى (قواطع الدوائر، تخفيف الحمل، التراجع). كن مستعدًا لمناقشة: كيف ستحدد ما إذا كانت المشكلة في التعليمات البرمجية الخاصة بك، أو قاعدة البيانات، أو خدمة تابعة؟ ما هو التخفيف قصير المدى الذي ستطبقه أثناء التحقيق؟
أسئلة بتتسأل في أي انترفيو تقريبًا
جاهز تتمرن بجد؟
اتمرن على أسئلة مطور باك إند دي بصوتك مع مُحاور ذكي بيتكلم عربي وإنجليزي، وبعدين خد ملاحظات فورية على إجاباتك.
اتمرن مع الذكاء الاصطناعي، ابدأ مجانًا