ADIB - Abu Dhabi Islamic Bank Abu Dhabi, United Arab Emirates
Job Description
Role: Technical Architect
Location: Abu Dhabi
Role Purpose:
To work with multiple teams and team's business stakeholders and deliver state of the art digital experience through resilient, robust and blazing fast Omni channel Microservice designs.
Key Accountabilities of the role:
Advocate for improvements to product quality, security, and performance that have particular impact across your team and others.
Solve technical problems of the highest scope and complexity for your team.
Exert significant influence on the overall objectives and long-range goals of your team.
Shepherd the definition and improvement of our internal standards for style, maintainability, and best practices for a high-scale web environment. Maintain and advocate for these standards through code review.
Drive innovation on the team with a willingness to experiment and to boldly confront problems of immense complexity and scope.
Actively seek out difficult impediments to our efficiency as a team ("technical debt"), propose and implement solutions that will enable the entire team to iterate faster.
Interact with customers and other external stakeholders as a consultant and spokesperson for the work of your team.
Provide mentorship for all Engineers on your team to help them grow in their technical responsibilities and remove blockers to their autonomy.
Confidently ship large features and improvements with minimal guidance and support from other team members. Collaborate with the team on larger projects.
Mentor teammates in an open, respectful, flexible, empathetic manner. Seek out mentoring opportunities specifically to create team redundancy and backfill ability. Mentor members of other teams as needed.
Collaborate and decide on your team's engineering work based on the organization's engineering strategy, together with your teammates and senior engineers. Sometimes involved in work on organizational engineering strategy.
Evaluate and create new product features in collaboration with the product team.
Regularly participate in the creation of the team roadmap and ensuing feedback. Simplify product and technical design through proactive conversations.
Specialist Skills / Technical Knowledge, Technical Competencies Required for this role:
Consistently write production-ready code that is easily testable, easily understood by other developers, and accounts for edge cases and errors.
Understand when it is appropriate to leave comments, but bias towards self-documenting code. Understand your team's testing approach and use quality metrics to identify gaps.
Work with your team to recommend solutions that are in accordance with accepted testing frameworks and the testing pyramid.
Proficient at using systematic debugging to diagnose all issues within the scope of your domain.
Drive monitoring work on your team based on the organization's monitoring philosophy.
Be aware of the operational data for your team's domain and use it as a basis for driving changes to the team's services to achieve stability and performance improvements.
Have expertise in your team's domain, including the breadth of services, how they interact, and data flows between systems. Understand adjacent domains as they affect your team.
Architect services and systems using well-accepted design patterns to allow for iterative, autonomous development and future scaling.
Anticipate future use cases and make design decisions that minimize the cost of future changes.
Actively work with the security team, as well as your own team, to refine them.
Previous experience:
10+ years of software development experience with strong java/jee/spring development frameworks.
3+ years of experience in designing distributed systems.
Certification in TOGAF/Azure Solutions Architect/AWS Solutions Architect/GCP Solution Architect.
Demonstrated implementation of Microservices, container and cloud-native application development.
Hands-on experience with Docker, Kubernetes or OpenShift and related container platform ecosystems.
Strong understanding of static code analysis, unit testing and test-driven development, security testing and automated test frameworks. Experience using Jenkins, SonarQube, GIT, Maven, Gradle.
Experience with two or more application servers such as JBoss, Tomcat, WebLogic or WebSphere.
Strong Agile experience working in Scrum and/or Kanban models.
Experience with two or more database technologies such as Oracle, MySQL or Postgres, MongoDB.
Experience working in a DevOps-focused environment previously with advanced understanding of DevOps principles as a big plus.
Proven track record of delivering high quality and consistent systems and environments for development teams.