Description
- The ideal candidate will not just be an outstanding Java developer, but will bring a mindset of creativity, innovation and balanced bleeding edge technology development with a relentless pursuit of timely product engineering delivery.
- The role requires ownership, logical thinking, and estimation of your own work, coding, testing, trouble shooting and performance optimizations.
- The candidate will work in an Agile (SCRUM) environment and will be allocated and co-located to a small agile development team (squad).
- The candidate will collaborate with team members to understand the problem & define, design, and ship new features through the development lifecycle. This includes brainstorm, contribution to new ideas, conceive innovative strategies, and implement solutions to difficult problems.
- Must be able to work independently, effectively and efficiently in a collaborative agile environment with scrum masters, solution engineers, designers, and developers.
- Strong technical/ software engineering background (hands-on).
- Strong application/software development or programming background in Java.
- Good experience in system, application architecture, design, development, implementation and deployment (end-to-end), development automation.
- Ability to work on different tiers of the application.
- Object oriented Design.
- Solid experience on Sprint Boot, Spring Framework (Spring Data, Spring Batch, Spring Webservices, Spring Integration, Spring Rest, Spring Cloud), Hibernate, Open-Source Frameworks.
- Solid experience with SOA-Architectures, Microservices Architectures and related integration protocols (e.g. Web Services (SOAP/XML), REST & JSON, and MQ), as well as the related security requirements/models.
- Experience with application database management practices in a high-volume Java environment (SQL, DB2, and NoSql Cassandra/MongoDB).
- Experience with deploying and running Java applications in orchestrated container environments (e.g., Docker, Kubernetes).
- Solid CI, CD, DevOps and related tooling experience, build/test/deploy through automation.
- Performance and troubleshooting of Java Applications.
- Good experience with integrated system environments.
- Practical experience in a high-volume banking environment. (E.g., application clustering, scaling, multi-threading, session management, etc.).
- Self-driven, self-starter, technology leader, and able to work independently.
- Must have working experience on the following tools/IDEs:
- Eclipse
- InteliJ
- Spring Tool Suite
- Git
- Maven
- Jenkins
- SonarQube
- Nexus
- Debugging & troubleshooting.
- Write well documented and maintainable code.
- Passion for software excellence and be quality driven.
- You must be prepared to bring new ideas to the workplace, but also to accept how things have been done and the reasons for doing things this way.
- B-Degree in Computer Science or related technical field.
- 10+ years Java application programming/development experience.
- 5+ years Spring Framework, JEE-Experience.
- 3+ CI/CD, DevOps, Docker, Kubernetes Experience.