H

Senior Java Software Developer

Harris
Full-time
Remote
South Africa, South Africa

Senior Software Engineers ensure that all software engineers within the delivery team understand, adhere to, and implement established IT standards, policies, and procedures. They collaborate closely with other team leaders and development teams to create software that aligns with customer requirements and adheres to industry best practices. Senior Software Engineers lead by example, ensuring their teams follow best practices in software development while providing guidance and oversight to maintain high-quality deliverables.

As leaders within the delivery team, Senior Software Engineers are responsible for successfully guiding their teams through projects, fostering a culture of excellence, and ensuring optimal collaboration. They utilize the Java programming language to develop web applications and computer systems, assigning tasks, designing and testing code, and driving continuous improvement in development processes.

The role also includes modernizing the existing banking services platform, transitioning Glassfish and Payara applications to more modern β€œdockized” solutions, simplifying implementations, and maintaining superior quality and performance.

This is a full-time position, and additional hours may be required from time to time. As we are a South African-based company, the successful candidate must be able to work within South African time zones to ensure effective collaboration with our teams. Excellent communication skills are essential to avoid language barriers.

Responsibilities:

  • Develop modules of the initial enterprise system plan and work with the development team by coding advanced portions of the modules and delegating routine coding to other Developers.
  • Conduct the testing of completed code modules with the help of other developers, fixing code as needed to ensure a smooth system deployment with the intended functionality.
  • Plan and execute all deployment of system features and monitor for successful integration, maintaining the system throughout its lifecycle.
  • Translate functional specifications into workable project deliverables and stage these according to team capability and capacity.
  • Responsible for code review and quality control.
  • Provide technical leadership and team support, as well as the ability to impart knowledge to others.
  • Accountable and responsible for project delivery.
  • Innovative problem solving, goal-orientated, and self-motivated.
  • Ensuring continuous professional self-development and mentoring of other Developers.
  • Support continuous improvement by investigating alternatives and technologies and presenting these for architectural reviews.
  • Assist with the production of technical specifications and designs.
  • Work in accordance with the prevailing delivery methodology as defined by the business.

Work Experience:

  • Experience with the development of real-time, complex web-based user interfaces.
  • Familiar with the software development lifecycle (SDLC) as well as software delivery methodologies such as the Agile SCRUM processes.
  • Familiarity with Financial systems.
  • Familiarity with Accounting concepts is advantageous.
  • Transactional knowledge / Full-stack experience.
  • Strong application architecture design experience.

Required Skills or Knowledge:

  • Java JEE and SE
  • Message Queueing Services: e.g., IBM MQ Series
  • Java Application Server experience: Glassfish / Payara / Web Logic
  • RDBMS experience in querying Microsoft SQL Server / Oracle / PostgreSQL / MySQL / MariaDB
  • SOAP/RESTful web services
  • IntelliJ
  • Git
  • Bitbucket
  • Spring / Spring Boot
  • JPA / Hibernate
  • DevOps (CI/CD) – Including tools like Jenkins, TeamCity, Ansible
  • Artifactory
  • Docker
  • Kubernetes

Advantageous Skills or Knowledge:

  • PrimeFaces
  • JUnit
  • EJB
  • React / Angular
  • Jira
  • Rancher