Job Responsibilities- Take functional requirements and translate it into code- Develop solutions that are testable and can be enhanced in the future- Build solutions that are easily configurable without the need for deployment- Talk through thinking and designs for potential solutions- Develop software that can be easily distributed as a service - Run standup meetings on a daily basis- Define sprint backlog with project manager- Assign sprint tasks to members of the team- Perform code reviews- Organize and run design sessions- Prepare and execute deployments with the team- Manage the current and future state of the tech stack - Recruit and manage intermediate and junior developers- Build team processes that foster efficient software development, team cohesion and keeps development stack up to date with best practices Coordinating tasks between the development team and the project managers- Documenting technical specifications and maintaining time spent by the developers for the business.Qualifications and Experience- Have at least eight years experience working in Java - Understanding of common design patterns and principles, and how/when to apply them- Is comfortable with a fast paced and often ambiguous environment- Understanding and being able to implement services in a microservice Architecture - Knowledge of at least one SQL or NoSQL database technology- Must be able to identify and cater for various use cases from the customers perspective- Knowledge and experience in the following technologies is a requirement:o Java 8o Spring Boot (including Spring Security, Spring Data, Actuator etc.)o JPA/Hibernateo MySQL 8o RabbitMQ (or any broker-based queuing technology)o Gito CI/CD (we use GitLab)o Flutter and Dart for Android developmento Basic Linux commands- Knowledge and experience in the following technologies will be an advantageo MongoDBo JBOSS + Enterprise Java Beans (EJBs)o ISO8583 Finance Protocolo SOAP Web Services