About the Role
We are seeking an experienced Senior Software Engineer (Java) to join our innovative technology team. You will design, build, and maintain scalable enterprise-grade applications using Java and complementary technologies.
This role emphasizes cloud-native development, microservices architecture, and secure, high-performance coding practices. It is ideal for a skilled engineer who thrives in collaborative Agile environments, embraces continuous learning, and is passionate about delivering robust, future-ready software solutions.
Key Responsibilities
Development & Architecture
- Design, develop, and maintain backend applications using Java 8+, Spring Boot, and related frameworks.
- Build microservices-based architectures with reusable and modular components.
- Implement cloud-native solutions using AWS or Azure services (e.g., Lambda, EC2, S3, RDS, App Services).
- Develop and integrate RESTful APIs, messaging systems, and asynchronous services.
- Ensure high availability, performance, and security of applications.
- Apply best practices in coding, architecture, and DevOps for maintainable and extensible solutions.
Tooling & Pipelines
- Implement CI/CD pipelines using Jenkins, GitHub Actions, or Azure DevOps.
- Containerize applications using Docker and manage orchestration with Kubernetes.
- Monitor and optimize application performance using tools such as Prometheus, Grafana, or AWS CloudWatch.
- Maintain unit tests, integration tests, and automated test frameworks to ensure application quality.
Collaboration & Process
- Collaborate with product managers, QA engineers, DevOps, and other software engineers in an Agile/Scrum environment.
- Participate in code reviews, architecture discussions, and knowledge-sharing sessions.
- Mentor junior developers and support team growth and skill development.
- Translate functional and technical requirements into high-quality software solutions.
Requirements & Qualifications
Must-Have Skills
- 6+ years of professional software development experience with Java 8+.
- Strong experience with Spring Boot, Spring Framework, and Hibernate / JPA.
- Hands-on experience with RESTful APIs and microservices architectures.
- Experience with relational databases (MySQL, PostgreSQL, Oracle) and NoSQL databases (MongoDB, Cassandra).
- Knowledge of containerization using Docker and orchestration using Kubernetes.
- Experience with CI/CD pipelines and automated build/deployment processes.
- Strong understanding of object-oriented programming, design patterns, and secure software development.
Highly Desirable Skills
- Cloud experience with AWS (Lambda, EC2, S3, RDS) or Azure services.
- Knowledge of event-driven architectures and messaging systems (e.g., Kafka, RabbitMQ, SQS).
- Familiarity with unit and integration testing frameworks (JUnit, TestNG, Mockito).
- Experience with build tools like Maven or Gradle.
- Exposure to performance tuning, profiling, and monitoring of Java applications.
- Understanding of DevSecOps practices and secure coding standards.
Education & Certifications
Education
- Bachelor’s degree, higher certificate, or diploma in Computer Science, Software Engineering, IT, or a related field.
Certifications (beneficial not compulsory)
- AWS Certified Developer – Associate
- Microsoft Certified: Azure Developer Associate
Additional Information
- Contract Duration: 12 Months (with possibility of renewal)
- Salary: Market Related
- Location Options: Johannesburg / Cape Town / Remote
- Must be located in South Africa or have a valid work permit for South Africa