Responsible for software applications design according to design best practices and customer needs.
Ensure all the technical team has full understanding of the project design.
Responsible for implementing the business requirements adhering to the design document of the project.
Reporting:
Report accurate and clear status about technical team progress, challenges, risks and recommendations.
Coaching & Technical guidance:
Responsible for providing full coaching, technical guidance, and support for all the technical team members during the project.
Decide the technologies and tools that best fit implementing the customer requirements.
Manage multiple projects and handle different tasks simultaneously.
Quality:
Assessing the quality of all project technical deliverables.
Steering the team into focusing on creating highly maintainable applications.
Communicate and enforce coding standards.
Ensure all implemented features are unit tested.
Perform code reviews and recommend necessary rework.
Responsible for the code being developed by the developers.
Promptly escalate issues, which affect project quality.
Ensure code is documented where applicable or required.
Technical Estimate:
Responsible for all technical estimates from the project’s early phases till end of the project.
Contribute to estimating the high-level requirements during RFPs.
Team work & Communication:
Ensure team-work spirit.
Ensure all team members are assigned to the tasks that fit their technical capabilities.
Communicate technical feedback and technical development areas to team members.
Commitment, Flexibility & Dedication:
Deliver tasks on time and within project plan with the agreed quality standards.
Flexible to adapt with unplanned changes in timelines, business requirements, quality standards or any other activity that might threaten the overall project delivery.
Cooperate with other team members to achieve project targets.
High dedication with putting the business first and ability to set the right priority for the benefit of our business.
Core Competencies, Knowledge and Experience:
Technical skills: Very good knowledge of:
Object Oriented Programming
Design patterns (Basic GoF)
Microservices architecture
SOA – Service Oriented Architecture
SOLID principles
Threading
Collections
Unit testing
Relational Database Basic concepts
No SQL Database
Redis
Big Data (Kafka)
Caching and performance tuning
Search engines like elastic search
GraphQL
Mongo DB
Spring boot
AWS Developing (AWS services including Lambda, ECS, Fargate, Event Bridge, Dynamo DB, Code build, Cloudwatch)
AOP – Aspect Oriented Programming
Spring security
Spring integration
Spring cloud
Spring data
Maven
Gradle
Git and branching strategies
Application servers
Kubernetes
Docker containers
Troubleshooting
Linux and shell scripting
Jenkins as a concept
Streaming
Reactive programming
Generics
REST APIs
SOAP Webservice
Clean code
Cryptography
Functional programming
Integration testing and BDD
Test driven
Prior experience working in Agile, (ideally using SAFe) in a DevOps structure, CI/CD
Systems Support:
Effectively supporting production systems, taking care of implementing the required KPI and adhering to the agreed service level agreements.
Innovation:
Suggest, plan and implement new ideas and software improvements.
Encourage the team to innovate and come up with new ideas.
Assess team ideas and provide constructive feedback and guidelines.
Must have Technical / Professional Qualifications: