مطوّر ويب شامل · 💰 USD 700–800/month
Asia
September 25, 2026 at 1:22 PM
💰 USD 700–800/month
مطوّر Full Stack — بتركيز على Backend
تبحث إلهام عن مطوّر بدوام كامل، قوي في تطوير الباك إند وقادر على المساهمة في تطوير الفرونت إند.
نمط العمل: عن بُعد
الدوام: 8 ساعات يوميًا، 6 أيام أسبوعيًا
الراتب الشهري: 700–800 دولار أمريكي، بحسب المستوى
المسؤوليات
• بناء واجهات API موثوقة وصيانتها، وتصميم البيانات وتطوير التحديثات اللحظية.
• المساهمة في تطوير الواجهات باستخدام React وNext.js وTailwind CSS.
• تحليل المشكلات وتصحيح الأخطاء وكتابة اختبارات مفيدة والتعاون عبر Git وGitHub.
• تحمل مسؤولية التسليم، ووضوح التواصل، وإدارة الأولويات، والالتزام بالجودة والمواعيد.
المهارات المطلوبة
• JavaScript وTypeScript.
• React وNext.js وTailwind CSS.
• NestJS و/أو Express.js.
• Socket.IO للتواصل والتحديثات اللحظية.
• PostgreSQL وPrisma ORM.
• فهم Clean Architecture وتطبيقها بما يناسب حجم المشروع.
• Git وGitHub والعمل الجماعي على الكود.
• Docker ومعرفة عملية بمفاهيم CI/CD.
• مهارات قوية في التحليل وتصحيح الأخطاء.
• استخدام أدوات AI مثل Codex وClaude بكفاءة، مع توجيهها ومراجعة مخرجاتها واختبارها وتحمل مسؤولية الكود النهائي.
توثيق API شرط أساسي
نحتاج خبرة قوية في OpenAPI باستخدام Swagger أو Scalar، تشمل المصادقة عند وجودها، والمعاملات، ومخططات الطلبات والردود، وأكواد الحالة والأخطاء، وأمثلة الاستخدام، مع إبقاء التوثيق مطابقًا للتنفيذ.
التحدي التقني إلزامي للتقديم
أكمل التحدي وأرفق الكود بصيغة ZIP. السيرة الذاتية وحدها لا تكفي، ورابط GitHub اختياري ولا يغني عن رفع الكود.
طوّر API مصغّرًا لحجز مواعيد ثابتة باستخدام TypeScript مع NestJS أو Express وPostgreSQL وPrisma. يشمل عرض المواعيد المتاحة من بيانات seed، وإنشاء الحجز وإلغاءه، ومنع حجز الموعد مرتين حتى عند وصول طلبين متزامنين، وإتاحة الموعد بعد الإلغاء. أضف التحقق من المدخلات ومعالجة الأخطاء بوضوح، وتحديثات بسيطة عبر Socket.IO، وتوثيق OpenAPI مطابقًا للتنفيذ، واختبارات لنجاح الحجز ومنع التعارض تحت التزامن وإتاحة الموعد بعد الإلغاء.
هذا تمرين توظيف مستقل. لا يتطلب واجهة أمامية أو تسجيل دخول أو دفعًا أو نشرًا سحابيًا أو إعداد CI/CD. المدة المستهدفة ساعتان إلى ثلاث ساعات؛ اذكر الوقت الفعلي وأي أجزاء غير مكتملة.
يحتوي ZIP على الكود، وملفات Prisma والترحيلات وseed والاختبارات، وREADME بتعليمات التشغيل والاختبار والوصول للتوثيق، و.env.example دون بيانات حساسة. استبعد node_modules والأسرار. أرفق شرحًا مختصرًا لآلية منع التعارض وأهم القرارات وما يمكن تحسينه، وإفصاحًا عن استخدام AI: الأدوات وكيف راجعت الناتج واختبرته، أو التصريح بعدم استخدامها.
استخدام AI مسموح. يجب أن تفهم الكود وتستطيع شرحه وإجراء تعديل قصير عليه أثناء المقابلة.
التقييم: 40% صحة السلوك ومنع التعارض، 20% جودة الكود وتصميم البيانات، 20% دقة توثيق OpenAPI، 15% الاختبارات وسهولة التشغيل، 5% التحديثات اللحظية. لا نقاط لميزات إضافية غير مطلوبة.
طريقة التقديم
اطّلع على مواصفات التحدي كاملة وأرسل سيرتك الذاتية وملف الكود ZIP الإلزامي عبر بوابة التوظيف:
https://careers.elham.net.sa/jobs/full-stack-backend
يُقدَّم الطلب عبر هذا الرابط ليتمكن الفريق من مراجعة بياناتك والكود معًا.
────────── ENGLISH ──────────
Full Stack Developer — Backend Focus
Elham is hiring a full-time developer with strong backend skills and the ability to contribute to frontend development.
Work arrangement: Remote
Schedule: 8 hours per day, 6 days per week
Monthly salary: USD 700–800, depending on level
WHAT YOU WILL DO
• Build and maintain reliable APIs, database models, and real-time features.
• Contribute to frontend features using React, Next.js, and Tailwind CSS.
• Diagnose issues, write meaningful tests, and collaborate through Git and GitHub.
• Take ownership of delivery, communicate clearly, manage priorities, and meet quality standards and deadlines.
REQUIRED SKILLS
• JavaScript and TypeScript.
• React, Next.js, and Tailwind CSS.
• NestJS and/or Express.js.
• Socket.IO for real-time communication and updates.
• PostgreSQL and Prisma ORM.
• Clean Architecture, applied appropriately to the size of the project.
• Git, GitHub, and collaborative development.
• Docker and practical knowledge of CI/CD concepts.
• Strong analytical and debugging skills.
• Ability to use AI tools such as Codex and Claude effectively: provide clear instructions, review and test their output, and take responsibility for the final code.
API DOCUMENTATION IS ESSENTIAL
You must have strong experience with OpenAPI using Swagger or Scalar. Documentation must cover authentication where applicable, parameters, request and response schemas, status codes, errors, and usage examples, and remain aligned with the implementation.
MANDATORY TECHNICAL CHALLENGE
To apply, complete the challenge and upload your code as a ZIP file. A CV alone is not sufficient, and an optional GitHub link does not replace the ZIP attachment.
Build a small fixed-slot appointment booking API using TypeScript, NestJS or Express, PostgreSQL, and Prisma. It must list available seeded slots, create and cancel bookings, prevent double booking even when requests arrive concurrently, and make a cancelled slot available again. Include input validation, clear errors, simple Socket.IO updates, accurate OpenAPI documentation, and tests for successful booking, concurrent booking conflicts, and availability after cancellation.
This is a standalone hiring exercise. No frontend, login, payments, cloud deployment, or CI/CD setup is required. The target duration is 2–3 hours; report your actual time and any incomplete parts.
Submit a ZIP containing the source code, Prisma schema and migrations, seed, tests, README with setup/testing/documentation instructions, and a non-sensitive .env.example. Exclude node_modules and secrets. Include a brief explanation of conflict prevention, key decisions, potential improvements, and your AI-use disclosure.
AI tools are allowed. You must understand your submission and be able to explain it and make a short modification during the interview.
Evaluation: 40% correct behavior and conflict prevention; 20% code quality and data design; 20% OpenAPI accuracy; 15% tests and ease of running; 5% real-time updates. Extra features do not earn additional points.
HOW TO APPLY
Read the full challenge specification and submit your CV and mandatory code ZIP through our careers portal:
https://careers.elham.net.sa/jobs/full-stack-backend
Applications must be submitted through this link so your code and application can be reviewed together.