- Support existing and develop new functionality and components.
- Understand existing product and domain elements and work with business analysts to refine and implement new requirements.
- Refactor and improve the code to keep the product maintainable and adaptable to new requirements.
- Evaluate and improve application performance, and high availability features.
- Create unit and integrated system tests to show that the developed functionality works as intended.
- Create technical documentation that explains how the various components of the system work and how to use them.
- Do root cause analysis on bugs to find and fix the cause of a problem in an integrated system.
- Build and deploy the system on an application server.
- Create and execute functional test scenarios (dev testing).
- Work effectively in a team environment, actively collaborating to improve software development processes and standards.
- Relevant tertiary qualification in Information Technology or Computer/Engineering Sciences and/ or at least 3 years relevant experience as a developer as part of a team in a software development environment.
- A strong knowledge of Java is essential.
- 2-3 years relevant experience as a senior back-end developer in a multi-tiered Java application development.
- Ability to work in a team environment and collaborate on a common (UML) design model.
- A thorough understanding of SDLC processes, tools and techniques.
Skills and Knowledge Requirements:
- Experience with team development tools: Use of source control applications (preferably GIT); Use of a UML tool for documentation.
- Experience of the following technologies:
- JEE (J2EE) server side technologies, SOAP and Services
- Spring framework (preferable)
- JPA /Hibernate
- Experience with an application server (IBM Websphere – preferable)
- Integration experience (Web/RESTful services, JMS)
- JAXB and XML Schema
- SQL and experience with a relational database (i.e. Oracle, PostgreSQL, MySQL, DB2)
- Ability to deliver production quality software by e.g. paying attention to detail, do extensive unit testing and support quality testing phases.
- Knowledge and experience of the following would be a plus:
- Business process/workflow layers e.g. JBPM, BPEL (Activiti)
- Rules engines (i.e. Drools)
- Design patterns (Object Oriented, SOLID, GRASP)
- Continuous integration tools (i.e. Jenkins, Bamboo, Docker)
- Backend Integration