Principal Software Engineer

at The Emirates Group
Location Dubai, United Arab Emirates
Date Posted November 29, 2021
Category Information Technology / Telecoms
Job Type Full-time

Description

Dubai, United Arab Emirates

Principal Software Engineer - 2100011G

Closing date: Dec 04, 2021

Job Purpose

  1. JOB PURPOSE

The Principal Software Engineer is a key technologist in the Software Engineering capability, helping to drive software engineering strategies, standards and guidelines at enterprise level. Engineering business critical technology solutions through the application of software programming, quality management, data engineering, data analysis and Big Data as well as ensuring robust engineering practices for solution planning, technology development, deployment, release, hyper-care and operation of technology solution. The Principal Engineer leverages their expert skills in technology stacks to enable the business to solve complex analytical problems in areas like planning, commerce, customer experience and operations

  1. JOB ACCOUNTABILITIES LINKED TO OBJECTIVE AREAS (MAXIMUM OF 10)

- Lead technical design and build for complex solutions across teams. Carry out effective technical design reviews to ensure that the right architecture patterns are used by engineering teams.

- Technical stewardship of a subset of technology area. Use expert knowledge of the technical stack and design principles for the components in the technology area to solve complex business issues. Represent software engineering in cross business area initiatives.

- Champion automation, lean software development, test driven development, agile practices, timely root cause analysis and blameless incident post-mortems. Help define and refine the software and data engineering playbooks for use by relevant people in Technology.

- Lead discovery phase of medium to large projects to come up with high level design, partnering with cross-functional teams. Drive proof-of-concepts and implementing prototypes to validate ideas. Investigate, debug and fix complex issues involving corner cases and rare conditions. Drive ?built-in quality? in data engineering teams in collaboration with end to end quality assurance.

- Mentor and coach engineers on writing efficient code, and debugging. Teach and help developers test their code better and influence developers to write tests and review their work.

- Develop/Identify framework, tools and practices to improve delivery quality of technology solutions and productivity of engineers, (for Data Engineering and Data Analytics >) - including data analysis templates such as business glossaries and source-to-target mapping. Help shape Data Governance guidelines, standards and principles. Develop optimal technical design and high-quality code for technology products that passes the QA requirements and is production deployment ready. Carry out functional, non-functional and performance testing in using appropriate automation tools, in collaboration with Architect, TQA and SRE.

- Set up, configure, monitor and manage technology platforms, tools and libraries for enterprise software, data hub, data warehouse, data science platforms in line with the approved technology architecture.

- Measure and monitor engineering metrics that enable agility, scalability, data quality and reliability of technology solutions across the enterprise.

- Corrective, adaptive, preventative and perfective maintenance of products with support from environment management, service management, infrastructure management and cyber security.

Qualifications & Experience

  1. MINIMUM QUALIFICATIONS/EXPERIENCE/KNOWLEDGE/SKILLS

Qualifications:

Degree or Honours (12+3 or equivalent)

Experience:

Information Technology.Software 8+ Years

Knowledge/Skills:

Degree in Computer science, Computational Mathematics, Computer Engineering or Software

Engineering.

10 years of experience will be considered for Master Degree holders Software Engineering.

Deep experience in distributed, scalable, multi-region high-load application development, full stack development - Technology evaluation, vendor selection and technology vendor management - Implementation of contemporary engineering practices like lean software development, test driven development, continuous integration and continuous deployment – Agile evangelist - Establishing and managing technology platforms for DevOps, Code Management, Testing, Continuous Integration and Continuous Deployment - Team player with a problem-solving attitude using variety of software and data technologies - Experience of developing advanced technology solutions for large, complex organisations in a multi-functional environment. Software Engineering - Strong understanding of distributed architecture, system integration and data architecture and models.

 

Knowledge/skills:

Must have broad expertise or unique knowledge in one or more of these areas, based on the area of hiring

Technology Domain Key Technologies/Tools

Frameworks/Libraries/Language: Spring cloud, Spring Boot Webflux, ELK/EFK, Netflix OSS, Docker, Kubernetes, OpenShift, Apache Kafka, Golang, Scala, Java 8-17, Akka, Alpakka, Test Frameworks ShiftLeft, SonarQube, SQS, Tibco, RabbitMQ, Solace, Kafka.

Principals: TDD, BDD, CI/CD, DevOps, GitOps, FinOps, SRE, Code Review, Micro-Services development, Configuration Management,Functional programming, Reactive programming, Solution design, hybrid cloud architecture, Big data architecture, Serverless, distributed-multi-region- calable-resilient-self-healing system.

DB: Couchbase, MongoDB, Oracle, RDS, DynamoDB, Neo4J, Postgres, MariaDB, Redis, Memcached, Ignite, Hyperledger

Cloud vendors: AWS, Google, Azure

Preferable certifications: AWS/Azure/Google solution architect - any level.