مهندس البرمجيات – Software Engineer

مهندس البرمجيات – Software Engineer

نبذة عن مهندس البرمجيات: هو المسؤول عن كتابة الـ Codes البرمجية باللغات المختلفة طبقا للمتفق عليه مع الفريق والتي تحقق متطلبات مالك المشروع التي تم كتابتها من قبل محلل الأعمال، ويجب أن يكون علي دراية كاملة بكيفية إنشاء وإدارة البرامج والفرق البرمجية وكيفية اختبار الـ Codes المكتوبة من خلال طرق معتمدة وكذلك كيفية إطلاق هذه الـ Codes ليقوم المستخدم باستخدامها.


دور مهندس البرمجيات:

  • اتباع الطريقة المتفق عليها من الفريق لإنشاء البرامج
  • يقوم بمراجعة المتطلبات التي تم كتابتها من محلل الأعمال والتأكد من قابليتها للتنفيذ
  • يقوم بكتابة الـ Codes التي تحقق متطلبات مالك المشروع
  • يقوم بكتابة Code الاختبارات الخاصة بهذه الـ Codes التي تضمن عمل هذه الـ Codes بكفاءة
  • يقوم بربط أجزاء البرنامج بعد تطويرها كلا علي حده
  • يقوم بالبحث والتطوير المستمر لتحسين أداء البرنامج
  • يقوم بتتبع المشاكل المكتشفة من خلال المختبرين ويقوم بحلها
  • يقوم بإطلاق البرنامج بحيث يمكن للمستخدمين استخدامه
  • يجب أن يحافظ علي النسخ المختلفة من الأكواد أثناء مراحل تطور البرنامج

مهارات مهندس البرمجيات:

  • أن يكون علي دراية بأنواع التطبيقات والبرامج المختلفة والفرق بينهم وما يتطلبه كل منهم ليتم إطلاقه
  • أن يتقن أحد اللغات البرمجية واحدة علي الأقل وأن يتقن المفاهيم البرمجية الأساسية
  • أن يتقن أحد قواعد البيانات ومفاهيم قواعد البيانات الأساسية
  • أن يكون لديه الخبرة في التعامل مع الخوادم
  • أن يكون متقنا لتقنيات التحكم في نسخ البرنامج
  • أن يكون علي دراية بأنماط تصميم البرمجيات Design Patterns
  • أن يكون قادرا علي اتباع طرق البرميجات المختلفة وأنماطها Frameworks
  • أن يكون قادرا علي العمل في طرق مختلفة لإدارة الفرق البرمجية

Position Overview

Experience in developing scalable data platforms. Experience in data analytics tools. They must have strong, firsthand technical expertise in a variety of configuration management and big data technologies and the proven ability to robust scalable solutions that can manage large data sets. They must be at ease working in an agile environment.

Essential Duties

•  Design and develop a processing platform using various configuration management technologies.
•  Test software development methodology in an agile environment.
•  Provide ongoing maintenance, support, and enhancements in existing systems and platforms.
•  Collaborate cross-functionally with business users, project managers, and other engineers to achieve elegant product.
•  Provide recommendations for continuous improvement.
•  Work alongside other engineers on the team to elevate technology and consistently apply best practices.

Technical Skills

• Hands-on experience working with technologies like .Net, SQL, VueJS, etc.
•  Experience with test-driven development and automated testing frameworks.
•  Experience with Scrum/Agile development methodologies.
•  Capable of delivering on multiple competing priorities with little supervision.
•  Excellent verbal and written communication skills.
•  Experience with infrastructure automation technologies like Docker, etc.
•  Experience with build automation technologies like Maven, Jenkins, etc.
•  Experience with building APIs and services using REST, SOAP, etc.