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 8
o Spring Boot (including Spring Security, Spring Data, Actuator etc.)
o JPA/Hibernate
o MySQL 8
o RabbitMQ (or any broker-based queuing technology)
o Git
o CI/CD (we use GitLab)
o Flutter and Dart for Android development
o Basic Linux commands
- Knowledge and experience in the following technologies will be an advantage
o MongoDB
o JBOSS + Enterprise Java Beans (EJBs)
o ISO8583 Finance Protocol
o SOAP Web Services