Design:
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 recommendation.
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 a highly maintainable applications.
Communicates and enforces coding standards.
Ensure all implemented features are unit tested.
Performs code reviews and recommends necessary rework.
Responsible for the code being developed by the developers with other leads.
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 standard or any other activity that might threat the overall project delivery.
Co-operate 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.
Very good knowledge of:
Object Oriented Programming
Design patterns (Basic GoF)
Microservices architecture
SOA – Service Oriented Architecture
SOLID principals
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
AOP – Aspect Oriented Programming
Spring security
Spring integration
Spring cloud
Spring 5
Spring data
Maven
Gradle
Git and branching strategies
Application servers
Kubernates
Docker containers
Splunk trouble shooting
Linux and shell scripting
Jenkins as a concept
Streaming
Reactive programming
Generics
REST APIs
SOAP Webservice
Clean code
Cryptography
AWS Developing
Functional programming
Integration testing and BDD
Test driven
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 team to innovate and comes with new ideas.
Assess team ideas and provide constructive feedback and guidelines.
Work Experience:
9+ years working experience
Education:
Bachelor Degree in computer science and/or engineering or equivalent
Good communication skills.
Communicate in a clear and simple way.
Steadiness under pressure.
Ability to work efficiently under pressure with no compromise on quality of deliverables.
Working with can-do attitude and competitive spirit.
Learning from mistakes and share lessons learned from previous projects.
Good listener, listen and ask questions to understand the business needs.
Show a can-do attitude, and believe in challenging and developing ourselves.
Proactive and positive spirit and attitude.
Inspire and energize others to believe in themselves and achieve more