- Location
- Johannesburg
- Workplace
- Remote, Hybrid
- Type
- Full-time
- Department
- Engineering
- Closing date
- Today
- Source
- CareersPage
Description
SENIOR FULL STACK SOFTWARE ENGINEER
Java / JVM | Distributed Systems | Microservices | Kafka | APIs | Cloud
Cape Town OR JHB - Hybrid Working Arrangement
12-Month Contract possibility conversion
Senior Software Engineer / Technical Lead
We are looking for a highly technical Senior Full Stack Software Engineer to join a large-scale financial technology environment working on business-critical, high-volume systems.
This is not a traditional CRUD development role. We need an engineer who understands systems end-to-end — including applications, APIs, databases, messaging, distributed services, observability and production operations.
What You'll Be Doing
- Design, develop and maintain scalable, resilient distributed applications
- Work across backend and frontend development
- Develop and integrate REST APIs and microservices
- Work with event-driven architectures and messaging platforms
- Design and optimise databases, queries and application logic
- Troubleshoot complex production issues and perform root-cause analysis
- Implement effective monitoring, logging, alerting and observability
- Build and optimise systems handling high transaction volumes
- Contribute to architectural and technical design decisions
- Develop clean, maintainable and reusable code
- Implement automated testing and CI/CD practices
- Work with cloud and containerised environments
- Participate in code reviews and engineering standards
- Mentor developers and help raise the team's technical capability
Technical Experience
We are looking for strong experience in:
- 6 - 10 years' commercial software development
- Full-stack software development
- Java / JVM technologies — highly preferred
- Spring Boot or equivalent backend frameworks
- Distributed systems and microservice architecture
- REST APIs and system integration
- Event-driven architecture and messaging
- Kafka — highly advantageous
- Strong SQL and relational database knowledge, including query optimisation
- Production troubleshooting and debugging
- Observability, monitoring, logging and alerting
- AWS and/or Azure
- Docker and Kubernetes
- CI/CD and automated testing
- Software design principles, design patterns and clean architecture
Experience with other JVM technologies such as Scala will also be considered.
Strong .NET engineers will be considered where they can demonstrate genuine experience with distributed systems, messaging, cloud, APIs, databases and large-scale production environments.
What We're Looking For
The right person will:
- Think beyond individual applications and understand systems end-to-end
- Understand how applications, APIs, messaging, databases and infrastructure interact
- Have experience working on real production systems at scale
- Be able to diagnose complex technical problems independently
- Understand scalability, resilience, failure handling and performance
- Be comfortable going deep into the technical detail
- Be able to explain why a technical solution works, not just which technology was used
- Take ownership of system reliability and production performance
- Be comfortable mentoring and supporting other engineers
- Communicate technical concepts clearly with both technical and business stakeholders
Banking / Payments Experience
Experience in banking, payments, fintech or other high-volume financial environments is highly advantageous.
However, financial-services experience is not mandatory.
We will consider engineers from other environments where they have worked on large-scale, distributed, transaction-heavy or business-critical systems.
This Role Will Suit You If...
You enjoy understanding how the whole system works, not just writing code for an individual application.
You should be comfortable discussing:
Distributed Systems | Kafka | APIs | Databases | Microservices | Event-Driven Architecture | Scalability | Failure Handling | Observability | Cloud | Kubernetes | Production Troubleshooting
If you're a senior engineer who enjoys solving difficult technical problems and helping other engineers become stronger, we'd like to hear from you.