يقوم مهندس البرمجيات الأول بتصميم البرمجيات وتطويرها وتنفيذها ودعم حلول برمجية آمنة وقابلة للتوسع وعالية الجودة تتيح منتجات المؤسسة الرقمية وخدماتها التقنية. يقود تسليم مبادرات البرمجيات المعقدة، ويضع ممارسات هندسية أفضل، ويضمن التميز التشغيلي، ويتعاون مع فرق متعددة الوظائف لتقديم حلول تقنية موثوقة وقابلة للصيانة وعالية الأداء. يعزز مهندس البرمجيات الأول التميز الهندسي من خلال دفع جودة البرمجيات والأتمتة والابتكار التقني وممارسات التطوير الآمنة والتحسين المستمر مع توجيه المهندسين والمساهمة في مبادرات تحول التكنولوجيا في البنك. المسؤوليات الرئيسية: يوجه ويدرب مهندسي البرمجيات من خلال التوجيه الفني وتبادل المعرفة ومراجعات التصميم والتطوير المهني المستمر. يقود التحسين المستمر من خلال تحديد الفرص لتحسين هندسة البرمجيات وعمليات التطوير والأتمتة والكفاءة التشغيلية وممارسات التكنولوجيا. يحافظ على الوثائق الفنية ومعايير التطوير وإجراءات التشغيل ومستودعات المعرفة لدعم إدارة دورة حياة التطبيق بشكل مستدام. يضمن الامتثال لسياسات تكنولوجيا البنك ومعايير الأمن المعلوماتي والمتطلبات التنظيمية وأطر حوكمة هندسة البرمجيات. يؤدي أي مسؤوليات أخرى تتسق مع نطاق الدور كما يعين مدير الخط المباشر.
المرشح المطلوب
- درجة البكالوريوس في علوم الكمبيوتر أو هندسة البرمجيات أو تكنولوجيا المعلومات أو تخصص ذي صلة. قد يتم النظر في خبرة عملية معادلة.
- حد أدنى 6 سنوات من خبرة هندسة برمجيات مهنية، بما في ذلك تصميم وتطوير ودعم تطبيقات وخدمات إنتاجية المستوى.
- خبرة مثبتة في تقديم حلول برمجيات مؤسسية قابلة للتوسع عبر دورة حياة تطوير البرمجيات الكاملة.
- خبرة قوية مع واحد أو أكثر من لغات البرمجة الحديثة مثل بايثون وجافا وجو وTypeScript ودارت أو تقنيات مشابهة.
- خبرة في تطوير ودعم واجهات برمجة تطبيقات RESTful والخدمات المصغرة والتطبيقات الموزعة وهندسة البرمجيات الحديثة.
- خبرة مع قواعد البيانات العلائقية ونمذجة البيانات وتكامل API وتحسين أداء التطبيق وتطوير التطبيقات السحابية الأصلية.
- خبرة مع خطوط CI/CD وممارسات DevOps وتقنيات الحاويات وبنية تحتية كرمز (IaC) ومنصات سحابية مثل OCI وAWS وAzure أو Google Cloud.
- معرفة بممارسات هندسة البرمجيات الأفضل بما في ذلك إدارة الإصدار والاختبار الآلي والبرمجة الآمنة ومراجعة الشيفرة وإدارة الإصدار.
- يفضل وجود خبرة في تطوير أو دعم حلول الذكاء الاصطناعي أو التعلم الآلي أو الأتمتة الذكية.
The Senior Software Engineer designs, develops, implements, and supports secure, scalable, and high-quality software solutions that enable the Bank's digital products and technology services. He/She leads the delivery of complex software initiatives, establishes engineering best practices, ensures operational excellence, and collaborates with cross-functional teams to deliver reliable, maintainable, and high-performing technology solutions.The Senior Software Engineer promotes engineering excellence by driving software quality, automation, technical innovation, secure development practices, and continuous improvement while mentoring engineers and contributing to the Bank's technology transformation initiatives. Key Accountabilities: Mentors and coaches software engineers through technical guidance, knowledge sharing, design reviews, and continuous professional development. Drives continuous improvement by identifying opportunities to optimize software architecture, development processes, automation, operational efficiency, and technology practices. Maintains technical documentation, development standards, operational procedures, and knowledge repositories to support sustainable application lifecycle management. Ensures compliance with the Bank's technology policies, information security standards, regulatory requirements, and software engineering governance frameworks. Performs any other responsibilities consistent with the scope of the role, as assigned by the line manager.
Desired Candidate Profile
- Bachelor's degree in Computer Science, Software Engineering, Information Technology, or a related discipline. Equivalent practical experience may be considered.
- Minimum of 6 years of professional software engineering experience, including experience designing, developing, and supporting production-grade applications and services.
- Demonstrated experience delivering scalable enterprise software solutions across the full software development lifecycle.
- Strong experience with one or more modern programming languages such as Python, Java, Go, TypeScript, Dart, or similar technologies.
- Experience developing and supporting RESTful APIs, microservices, distributed applications, and modern software architecture.
- Experience with relational databases, data modelling, API integration, application performance optimization, and cloud-native application development.
- Experience with CI/CD pipelines, DevOps practices, containerization technologies, Infrastructure as Code (IaC), and cloud platforms such as OCI, AWS, Azure, or Google Cloud.
- Knowledge of software engineering best practices including version control, automated testing, secure coding, code reviews, and release management.
- Experience developing or supporting Artificial Intelligence, machine learning, or intelligent automation solutions is preferred.