Description PayInc is a purpose-driven payments provider building on over 50 years of trusted history in South Africa’s payments ecosystem. Our mission is to connect people, businesses, and economies through secure, efficient and inclusive digital payments infrastructure and be a catalyst for financial inclusion and economic growth. From EFTs and cards to PayShap, PayInc provides the backbone that enables money to move safely across the economy. At our core, we exist to make great connections, empowering participation, enabling growth, and ensuring no one is left behind. PURPOSE The main purpose of the Java Developer is to analyse technical specifications and design/develop applications based on result of all analysis for internal and external stakeholders and in alignment with strategic objectives and client requirements. You will engage with the following stakeholders: Internal and external stakeholders Regulatory bodies Financial institutions Payment processors Product Managers Enterprise Project Management Office PayInc Service Desk PayInc Command Centre Your key responsibilities include: New Product/ System Development: Build, unit testing and debugging solutions Create, document and implement unit test plans and scripts Create and maintain technical documentation using defined templates Interface with and assist testing and operations departments Ensure Quality assurance is conducted on code developed Interpret written business requirements and technical specifications to design and code solutions Verify that system meets performance criteria Analyse and solve problems for production, UAT and development environments. Develops, modifies and maintains assigned programs. Monitors the operation of assigned programs and responds to problems by diagnosing and correcting errors in logic and coding. Provide Production Support and maintenance of applicable systems. Verify that system meets performance criteria Product /System Maintenance Perform maintenance programming to rectify identified defects Provide first line of support for the live systems Be able to provide feedback to the incident committee QUALIFICATIONS / KNOWLEDGE BSc Computer Science or IT Diploma or relevant experience Matric Knowledge of development and analysis AWS Cloud knowledge Knowledge of Golang/Python J2EE/EJB/Springboot Framework Angular/Primefaces/Wicked Code Versioning Tools such as Git,GitHub ISO 20022 JSON/XML/XSD Micro Services Linux Scripting Relational Databases Oracle/MySQL/PostgreSQL IDE tool Eclipse/NetBeans/IntelliJ or similar Application Servers JBoss/Wildfly Build tools such as Maven/Ant Continuous Integration tools such as Hudson & Jenkins EXPERIENCE 5 to 10 years’ experience in Java Developing in a J2EE environment Proven hands-on Software Development experience Proven working experience in Java development Hands-on experience in designing and developing applications using Java EE platforms Object Oriented analysis and design using common design patterns Profound insight of Java and JEE internals (Classloading, Memory Management, Transaction management, etc) Excellent knowledge of Relational Databases, SQL and ORM technologies (JPA2, Hibernate, JDBC) Experience in the Spring Framework Experience in developing web applications using at least one popular web framework (JSF, Wicket, GWT, Spring MVC, Angular) Experience with test-driven development Creating database schemas that represent and support business processes Knack for writing clean, readable Java code Basic understanding of JVM, its limitations, weaknesses, and workarounds Implementing automated testing platforms and unit tests Experience in ESB’s advantageous AWS Cloud experience would be advantageous Financial Industry experience would be advantageous