Design, build, and maintain backend services and APIs for a financial services platform. Own the full lifecycle of services from solution design and TDD to deployment and production support.
This is a remote position.
We are recruiting an Intermediate Backend Engineer for a technology-led financial services organisation serving customers across Africa and international markets. The platform supports high-volume customer journeys, financial transactions and partner integrations in a complex, distributed environment.
This role is suited to an engineer who can own a backend domain end to end. You will write production-grade Java, but you will also think beyond the language: how services interact, how systems fail, how APIs are consumed, how data models affect performance and how architecture should evolve over time.
You will work remotely from South Africa/Africa /EU in a cross-functional engineering squad. You will do the following:
- Design, build and maintain backend services and APIs used by internal teams, external partners and customer-facing products.
- Own the quality and reliability of the services you build, from solution design through deployment and production support.
- Write unit and integration tests as a core part of development rather than treating testing as a separate QA activity (TDD)
- Participate actively in architecture and system-design discussions, contributing practical and well-reasoned technical perspectives.
- Review pull requests and use code review as both a quality control and a learning mechanism.
- Create and maintain technical documentation, including OpenAPI specifications, service READMEs and operational runbooks.
- Contribute to shared libraries, reusable components and platform standards where your work has value across squads.
- Take part in backlog refinement, planning, stand-ups, reviews and retrospectives, with clear accountability for squad outcomes.
- Use AI and LLM tooling appropriately for code generation, test creation, debugging, documentation and engineering productivity.
Requirements
- At least 3 years of professional backend software engineering experience, including a minimum of 2 years using Java in a production environment.
- Strong Java and Spring Boot capability, including dependency injection, Spring Security, Spring Data, transaction management and testing with Spring Test.
- Sound REST API design knowledge, including versioning, error handling, idempotency, pagination and backward compatibility.
- Experience designing and working with relational databases, including schema design, indexing, query optimisation and performance-aware data modelling.
- A working understanding of distributed-systems concepts, including eventual consistency, idempotency, retries, circuit breakers and failure-mode thinking.
- Practical testing experience using JUnit and Mockito, together with integration tests against a real database and an understanding of the test pyramid.
- Ability to write clean, readable, maintainable code and to explain technical decisions clearly to other engineers.
- Production experience with event-driven architecture using Kafka, RabbitMQ or an equivalent messaging platform.
- Understanding of consumer groups, offset management and at-least-once versus exactly-once delivery semantics.
- Experience in a microservices environment, including service discovery, API gateways, inter-service communication and distributed tracing.
- Working familiarity with AWS and the runtime environment in which backend services are deployed.
- Experience with Docker and modern CI/CD practices.
- Exposure to Kotlin or another JVM language, or a willingness to learn.
- Fintech,payments, lending, insurance or broader financial-services experience is required
- Understanding of reconciliation, idempotent payment flows, audit logging and other controls relevant to financial systems.
Candidates must submit a current CV together with a brief note outlining their experience with Java, Spring Boot, backend architecture and distributed systems online.