نحن نبحث عن مهندس برمجيات ماهر ولديه خبرة في بايثون وخدمات AWS Cloud للانضمام إلى فريق التطوير الديناميكي والمبتكر لدينا. كمهندس برمجيات، ستكون مسؤولاً عن تصميم وتطوير ونشر حلول برمجية قابلة للتطوير وموثوقة باستخدام بايثون والاستفادة من خدمات AWS السحابية. ستتعاون بشكل وثيق مع فرق متعددة الوظائف، بما في ذلك مديري المنتجات والمصممين وزملاء المهندسين، لتقديم منتجات برمجية عالية الجودة تلبي احتياجات عملائنا.
المسؤوليات:
- تصميم وتطوير تطبيقات برمجية عالية الجودة وفعّالة وقابلة للتطوير باستخدام بايثون، مع الالتزام بأفضل الممارسات ومعايير الترميز.
- التعاون مع فريق إدارة المنتج لفهم المتطلبات وتحويلها إلى تصاميم تقنية، والمشاركة في دورة تطوير المنتج.
- كتابة كود نظيف وقابل للصيانة وموثق جيداً، مع ضمان جودة الكود الكلية من خلال مراجعات الكود والاختبار.
- تحديد ومعالجة عنق الزجاجة في الأداء، وتصحيح المشكلات، وتحسين التطبيقات لتحقيق أقصى سرعة وقابلية للتوسع.
- البقاء على اطلاع بآخر الاتجاهات والتطورات في بايثون وAWS والتقنيات ذات الصلة، وتبادل المعرفة وأفضل الممارسات مع الفريق.
- دمج واستخدام خدمات AWS مثل Amazon S3 وEC2 وRDS وLambda وDynamoDB وغيرها، حسب متطلبات هندسة التطبيق.
- ضمان الأداء العالي والتوافر ومتانة التطبيقات من خلال تنفيذ التوسع التلقائي لـ AWS، وتوزيع الحمل، وآليات المراقبة.
- العمل عن كثب مع فرق متعددة الوظائف، بما في ذلك المصممين ومطوري الواجهة الأمامية، لضمان تكامل سلس بين مكوِّنات الخلفية والأمام.
- المشاركة في منهجيات التطوير المرنة، بما في ذلك تخطيط السبرينت وتقدير المهام واجتماعات الفريق المنتظمة.
- توجيه وتقديم الإرشاد التقني لأعضاء الفريق المبتدئين، وتعزيز نموهم وتطورهم المهني.
- ضمان النشر والتشغيل السلس للبرمجيات في بيئة سحابية.
- المساهمة في التحسين المستمر لعمليات تطوير البرمجيات وأدواتها ومنهجياتها.
- تصميم وتكامل وإدارة التطبيقات السحابية الأصلية باستخدام مجموعة واسعة من خدمات AWS، بما في ذلك S3 وEC2 وRDS (PostgreSQL) وLambda وAPI Gateway وVPC وIAM وCloudWatch وCloudFormation، مع ضمان قابلية التطوير والأمان والتوافر العالي.
الملف المرشّح المطلوب
- درجة البكالوريوس في علوم الكمبيوتر أو هندسة البرمجيات أو مجال ذي صلة.
- خبرة أكثر من سنتين في هندسة البرمجيات أو دور مشابه
- فهم قوي للغة بايثون وبيئتها، بما في ذلك أُطر مثل Scrapy وDjango أو Flask.
- خبرة جيدة في خدمات AWS السحابية، بما في ذلك ولكن لا تقتصر على Compute: EC2, ECS, Lambda; Storage: S3, EFS; Databases: RDS, PostgreSQL; Developer Tools: CodePipeline, CodeBuild, CodeDeploy; Security and Identity: IAM, Secrets Manager; Networking: VPC, Load Balancers, API Gateway
- معرفة بتقنيات الحاويات مثل Docker ومنصات تنظيم الحاويات مثل Kubernetes تعتبر زائدًا.
- خبرة واسعة في تصميم وتطوير تطبيقات الخلفية وواجهات برمجة التطبيقات وخدمات الويب باستخدام أُطر بايثون.
- إتقان أنظمة قواعد البيانات مثل PostgreSQL وMySQL وMongoDB، والاطلاع على أُطر ORM (الربط بين الكائنات والعلائق).
- فهم قوي لمبادئ تطوير البرمجيات وأنماط التصميم وأفضل الممارسات.
- خبرة مع أنظمة التحكم بالإصدارات، مثل Git، والاطلاع على سير عمل التعاون في التشفير.
- فهم صلب لاختبارات البرمجيات، بما في ذلك الاختبار الأحادي والاختبار التكامل.
- خبرة في بيئة تطوير مرنة والاطلاع على منهجيات تطوير مرنة (مثل Scrum وKanban).
- مهارات حل المشكلات والتحليل بشكل ممتاز، مع دقة عالية في التفاصيل.
- مهارات تواصل وتعاون فعّالة، مع القدرة على العمل ضمن فريق.
We are seeking a highly skilled Software Engineer with expertise in Python and AWS Cloud to join our dynamic and innovative development team. As a Software Engineer, you will be responsible for designing, developing, and deploying scalable and reliable software solutions using Python and leveraging AWS cloud services. You will collaborate closely with cross-functional teams, including product managers, designers, and fellow engineers, to deliver high-quality software products that meet our customers' needs.
Responsibilities:
- Design and develop high-quality, efficient, and scalable software applications using Python, adhering to best practices and coding standards.
- Collaborate with the product management team to understand requirements, translate them into technical designs, and participate in the product development lifecycle.
- Write clean, maintainable, and well-documented code, while ensuring the overall quality of the code through code reviews and testing.
- Identify and address performance bottlenecks, debugging issues, and optimizing applications for maximum speed and scalability.
- Stay updated with the latest trends and advancements in Python, AWS and related technologies, and share knowledge and best practices with the team.
- Integrate and utilize AWS services such as Amazon S3, Amazon EC2, Amazon RDS, AWS Lambda, AWS DynamoDB, and others, as required by the application architecture.
- Ensure high performance, availability, and fault tolerance of applications by implementing AWS auto-scaling, load balancing, and monitoring mechanisms.
- Work closely with cross-functional teams, including designers and frontend developers, to ensure seamless integration of backend and frontend components.
- Participate in agile development methodologies, including sprint planning, task estimation, and regular team meetings.
- Mentor and provide technical guidance to junior team members, fostering their professional growth and development.
- Ensure smooth deployment and operation of the software in a cloud-based environment.
- Contribute to the continuous improvement of software development processes, tools, and methodologies.
- Design, integrate, and manage cloud-native applications using a wide range of AWS services, including S3, EC2, RDS (PostgreSQL), Lambda, API Gateway, VPC, IAM, CloudWatch, and CloudFormation, ensuring scalability, security, and high availability.
Desired Candidate Profile
- Bachelor's degree in Computer Science, Software Engineering, or a related field.
- +2 years of experience in software engineering or a related role
- Solid understanding of Python programming language and its ecosystem, including frameworks like Scrapy, Django or Flask.
- Good experience with AWS cloud services, including but not limited to Compute : EC2, ECS, Lambda Storage : S3, EFS Databases : RDS, postgresql Developer Tools : CodePipeline, CodeBuild, CodeDeploy Security and Identity : IAM, Secrets Manager Networking : VPC, Load Balancers, API Gateway
- Knowledge of containerization technologies like Docker and container orchestration platforms like Kubernetes is a plus.
- Extensive experience in designing and developing backend applications, APIs, and web services using Python frameworks
- Proficiency in database systems such as PostgreSQL, MySQL, or MongoDB, and familiarity with ORM (Object-Relational Mapping) frameworks.
- Strong understanding of software development principles, design patterns, and best practices.
- Experience with version control systems, such as Git, and familiarity with collaborative coding workflows.
- Solid understanding of software testing methodologies, including unit testing and integration testing.
- Experience working in an agile development environment and familiarity with agile methodologies (e.g., Scrum, Kanban).
- Excellent problem-solving and analytical skills, with a strong attention to detail.
- Effective communication and collaboration skills, with the ability to work well within a team.