- Bachelor s or master s degree in computer science, Information Systems, Engineering or equivalent from a recognized College / University
- 5 to 8 years of work experience as a Java Software Engineer/Java Developer, or similar role.
- Have good knowledge of the Java programming language, Spring framework and Spring Boot.
- Strong in OOP fundamentals and design using proven design patterns.
- Java full stack development experience is required.
- Experience in microservices architecture.
- Hands on experience with messaging (Azure Event Hub+ Rabbit).
- Working knowledge of unit testing frameworks such as JUnit and Mockito.
- Experience with Elasticsearch
- Experience of test automation tools such as Selenium.
- Experience with SQL and NoSQL Databases (Preferably Experience in Postgres and MongoDB).
- Experience with Javascript + React.
- Knowledge of DevOps and CI/CD, automated test and build tools.
- Source Control: GIT, Bitbucket.
- Continuous Integration: Bamboo.
- Containers: Docker, Mesosphere.
- Experience or exposure to cloud environments, specifically Azure + AWS.
- Ability to work across waterfall, agile, and hybrid methodologies.
Roles & Responsibilities:
- Provides input for the prioritization of issues in the backlog and autonomously pulls issues or supports other team members as appropriate.
- Understands functional and technical requirements of software components.
- investigate, troubleshoot, and provide expert solutions to complex technical issues.
- Participate in code reviews, ensure code quality, and conform to best practices and industry standards.
- Clearly understands and communicates the impact of changes in the team s deliverables on other teams and customers.
- Provide assistance to junior developers.
- Strong communication skills and ability to troubleshoot and debug applications and strive to improve the overall product by researching alternative ways and technologies to achieve the overall goal.
- Design and implement Java applications that fulfill requirements.
- Create well-written code that runs efficiently and optimally.
- Test completed software and debug as necessary.
- Examine existing code and recommend patches, design solutions or fixes for broken code.