Our clients reserves the right not to make an appointment. In considering candidates for appointment into advertised posts, preference will be accorded to persons from a designated group in accordance with the approved Employment Equity Plan.

Senior Software Engineer- Remote - Permanent - Tech Stack (BackEnd Java and Springboot, Restful API) (AM/SE/BD/7/05/25)

Overview

Reference
AM/SE/BD/7/05/25

Salary
ZAR/month

Job Location
- South Africa -- City of Cape Town -- Cape Town

Job Type
Permanent

Posted
07 May 2025

Closing date
30 May 2025 21:59


A Global Client of ours with head office in New Zealand and staff located across South Africa, UK, India and Europe are seeking a Software Engineer (based in Cape Town) to work remotely) - BACK-END SERVICES USING JAVA and SPRING BOOT

  • The role is responsible for designing, developing, and optimizing scalable microservices while ensuring robustness, security, and scalability. 
  • The role includes working with various databases, integrating messaging systems, and ensuring high performance and observability.

 

Duties and Accountabilities:

  • Develop and maintain highly scalable and robust back-end services using Java and Spring Boot.
  • Design and implement RESTful APIs, ensuring their integration with various messaging systems (Kafka, RabbitMQ).
  • Work with relational (Postgres) and NoSQL databases (Cassandra, OpenSearch, Pinot), ensuring optimal performance through tuning and optimization.
  • Utilize Kafka for data streaming and manage workflows using Apache Airflow.
  • Implement unit and integration testing using JUnit/Mockito, TestContainers, and BDD frameworks.
  • Ensure secure, scalable, and efficient microservices adhering to system design and architecture best practices.
  • Implement observability with logging, tracing, and monitoring tools like Prometheus and Grafana.
  • There is an expectation that the role accountabilities and duties will evolve over time. It may be necessary to review this job description through a consultative approach and make alterations in response to the changing nature of our work environment, including but not limited to technological requirements or statutory changes

 

Resources, Relationships and Authorities:

The role shall collaborate closely with:

  • Engineering teams
  • Marketing and sales teams
  • Customer support teams
  • Executive leadership
  • External clients from time to time
  • This position requires a high degree of autonomy and the ability to collaborate effectively with cross-functional teams.
  • The role has no authority to incur routine expenditure, commit capital expenditure, approve loans, or extend credit without approval from the Managing Director or the Managing Director’s designated representative.
  • The role has no authority to bind the Company to agreements with any other party without approval the Managing Director or the Managing Director’s designated representative.

Experience and Qualifications

  • Extensive experience in back-end development with a strong focus on Java, including concurrency, collections, streams, and design patterns.
  • Proficiency in Spring Boot, Spring Data, Spring Security, and Hibernate/JPA.
  • In-depth knowledge of RESTful API design, microservices architecture, and containerized deployments using Docker and Kubernetes.
  • Experience with message-driven architectures and tools like Kafka or RabbitMQ.
  • Strong understanding of relational databases (Postgres) and NoSQL databases (Cassandra, OpenSearch, Pinot).
  • Proficiency with Git and experience with CI/CD pipelines (GitLab CI) and DevOps practices.
  • Experience with designing systems that ensure at least one message delivery and idempotent data pipelines.
  • Familiarity with telemetry tooling (Prometheus, Grafana)
  • A positive professional approach and presentation.
  • Well-developed organisation and time management skills.
  • Accuracy and conciseness in written and verbal communications.
  • Proficiency with Microsoft Office products
  • Ability to work collaboratively in multidisciplinary, agile teams.
  • Strong communication skills, particularly in explaining complex technical solutions and trade-offs.
  • Experience in iterative development and adapting to feedback quickly.
  • Capacity for problem-solving and making informed decisions in a collaborative environment.

 

Desirable:

  • Exposure to other programming languages such as Scala or Python.
  • Experience with reactive programming and functional programming in Java.
  • Familiarity with Kubernetes and Docker containers for managing microservices.
  • Experience with GitLab CI for continuous integration and deployment.
  • Knowledge of event-driven architectures and distributed systems.
  • Experience with Kafka Streams and Kafka Connect.

 


Contact information

Ayesha Mohamed