Role
Responsible for leading the projects technically from the early phases of planning till the delivery of the production system.
Responsibilities
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.
- 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.
Technical skills:
Very good knowledge of:
- NodeJS
- AWS Developing (AWS services inc Lambda, ECS, Fargate, Event Bridge, Dynamo DB, Code build, Cloudwatch).
- Prior experience working in Agile, (ideally using SAFe) in a DevOps structure, CI/CD
- 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 data
- Maven
- Gradle
- Git and branching strategies
- Application servers
- Kubernates
- Docker containers
- trouble shooting
- 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
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 team to innovate and comes with new ideas.
- Assess team ideas and provide constructive feedback and guidelines.