وصف الوظيفة
ملخص الوظيفة
سيشارك مهندس Backend المبتدئ في تطوير، واختبار، وصيانة خدمات وواجهات برمجة تطبيقات Backend موثوقة لمنصة V-Thru. ستعمل الدور تحت إشراف مهندسين أولين لتقديم برنامج محدد النطاق يفي بمعايير الجودة والأمان والأداء مع التطوير المستمر للمهارات الفنية والمعرفة والملكية.
المسؤوليات الأساسية
التطوير والتسليم
- تنفيذ الميزات المعينة والتحسينات وإصلاحات الأخطاء عبر أي نطاق منتج داخل الـ backend، مع الالتزام باتفاقيات الترميز المعتمدة.
- تطوير وصيانة REST APIs وخدمات Backend تحت إشراف المهندسين الأقدم.
- العمل مع منصة البيانات وبنية التحت التكنولوجية الخاصة بها — MySQL، MongoDB، Redis (التخزين المؤقت)، RabbitMQ (الرسائل غير المتزامنة)، وتطوير محلي قائم على Docker — باستخدام Doctrine ORM/ODM عند الاقتضاء.
الجودة والاختبار
- كتابة اختبارات وحدة واختبارات تكامل لجميع الأكواد المقدمَة؛ اعتبار تغطية الاختبارات معيار إكمال.
- كتابة كود قابل للصيانة وقابل للقراءة وقابل للتوسع بسهولة.
- تصحيح القضايا المبلغ عنها عن طريق إعادة الإنتاج، وتحديد السبب الجذري، وحلها، وإضافة تغطية رجعية.
- معالجة الملاحظات من مراجعات الكود والتحليل الثابت بسرعة.
المعايير والامتثال
- الالتزام بمعايير الهندسة الخاصة بالفريق واتفاقياته (نمط الكود، أمان النوع، معالجة الاستثناءات، وصول إلى قاعدة البيانات، التخزين المؤقت، الاختبار، الأمن، وخصوصية البيانات).
- اتباع ممارسات الأمن والخصوصية والتشفير عند التعامل مع بيانات العملاء والبيانات التجارية.
الكفاءات التقنية
- معرفة أساسية في علوم الحاسوب — هياكل البيانات والخوارزميات والتعقيد الأساسي — كافية لتنفيذ مهام محددة النطاق بشكل صحيح.
- فهم لدورة حياة تطوير البرمجيات: الكتابة والاختبار والمراجعة والشحن.
- الوعي بأنماط التصميم الشائعة ومبادئ البرمجة الأساسية (مثلاً مبدأ الفصل بين الاهتمامات، DRY، SOLID) — قادر على العمل ضمنها عند تطبيقها من قبل الفريق.
- راحة مع على الأقل نمط برمجة واحد (كائنية التوجه أو وظيفية) وإظهار القدرة على تعلم لغات وأطر وتقنيات جديدة بسرعة.
- إلمام أساسي بقواعد البيانات ونمذجة البيانات (علاقة/NoSQL).
- معرفة عملية بالتحكم في الإصدارات (Git)، APIs، والاختبار الآلي كإجراءات يومية.
التعلم والقدرات
- متعلم سريع — يلتقط اللغات والأدوات وأنظمة الأكواد الجديدة بسرعة بتوجيه.
- مُحلل مشكلات جيد — يقسم المشكلات إلى أجزاء قابلة للإدارة ويعمل نحو السبب الجذري.
- فضولي — يهمه كيف ولماذا تعمل الأنظمة.
- قابل للتكيف — مريح مع تغيّر الأدوات والمفاهيم والمتطلبات.
الكفاءات السلوكية
- قابل للتوجيه — متقبل للملاحظات وسريع في تطبيقها.
- دقيق ومنضبط فيما يخص الجودة والمعايير.
- اتصالات واضحة مكتوبة وشفهية باللغة الإنجليزية.
- الملكية والمسؤولية عن العمل المعين.
المؤهلات المفضلة (غير الأساسية)
- خبرة في لغات البرمجة مثل PHP أو Python.
- خبرة مع إطار ويب حديث (مثل Symfony، Laravel، Django، Rails، Spring).
- تعرض لـ Docker والتطوير بالحاويات.
- إلمام بـ NoSQL (MongoDB)، التخزين المؤقت (Redis)، أو قوائم الرسائل (RabbitMQ).
- التعرّض لـ CI/CD؛ خبرة في التجارة الإلكترونية أو تكامل الدفع.
التعليم
- درجة البكالوريوس في علوم الحاسب، هندسة البرمجيات، هندسة الحاسوب، أو مجال ذي صلة.
- يمكن النظر في الخبرة العملية المكافئة أيضًا.
الخبرة
- 0–2 سنوات من خبرة تطوير البرمجيات.
- يُرحب بالحديثين التخرج للتقديم.
Job description
Job Summary
The Junior Backend Engineer will contribute to the development, testing, and maintenance of reliable backend services and APIs for the V-Thru platform. The role will work under the guidance of senior engineers to deliver well-scoped software that meets quality, security, and performance standards while continuously developing technical skills, knowledge, and ownership.
Key Responsibilities
Development & Delivery
- Implement assigned features, enhancements, and bug fixes across any product domain within the backend, adhering to established coding conventions.
- Develop and maintain REST APIs and backend services under the direction of senior engineers.
- Work with the platform's data and infrastructure stack — MySQL, MongoDB, Redis (caching), RabbitMQ (async messaging), and Docker-based local development — using Doctrine ORM/ODM where applicable.
Quality & Testing
- Write unit and integration tests for all delivered code; treat test coverage as a completion criterion.
- Write code that is maintainable, readable, and easy to extend.
- Debug reported issues by reproducing, identifying root cause, resolving, and adding regression coverage.
- Address feedback from code reviews and static analysis promptly.
Standards & Compliance
- Adhere to the team's engineering standards and conventions (code style, type safety, exception handling, database access, caching, testing, security, and data privacy).
- Follow established security, privacy, and secure-coding practices when handling customer and business data.
Technical Competencies
- Foundational computer-science knowledge — data structures, algorithms, and basic complexity — sufficient to implement well-scoped tasks correctly.
- Understanding of the software development lifecycle: writing, testing, reviewing, and shipping code.
- Awareness of common design patterns and core programming principles (e.g., separation of concerns, DRY, SOLID) — able to work within them when applied by the team.
- Comfort with at least one programming paradigm (object-oriented or functional) and demonstrated ability to learn unfamiliar languages, frameworks, and technologies quickly.
- Basic familiarity with databases and data modeling (relational and/or NoSQL).
- Working knowledge of version control (Git), APIs, and automated testing as everyday practices.
Learning & Aptitude
- Fast learner — picks up unfamiliar languages, tools, and codebases quickly with guidance.
- Good problem solver — breaks problems into manageable pieces and works toward the root cause.
- Curious — takes interest in how and why systems work.
- Adaptable — comfortable with changing tools, paradigms, and requirements.
Behavioral Competencies
- Coachable — receptive to feedback and quick to apply it.
- Detail-oriented and disciplined about quality and standards.
- Clear written and verbal communication in English.
- Ownership and accountability for assigned work.
Preferred Qualifications (Non-Essential) Competencies
- Experience with programming language such as Php or Python.
- Experience with a modern web framework (e.g., Symfony, Laravel, Django, Rails, Spring).
- Exposure to Docker and containerized development.
- Familiarity with NoSQL (MongoDB), caching (Redis), or message queues (RabbitMQ).
- CI/CD exposure; e-commerce or payment-integration experience.
Education
- Bachelor's degree in Computer Science, Software Engineering, Computer Engineering, or a related field.
- Equivalent practical experience may also be considered.
Experience
- 0–2 years of software development experience.
- Fresh graduates are welcome to apply.