Save Job
Posted 1mo ago

Software Engineer, Java

@ Upstream
Johannesburg, Gauteng, South Africa
HybridFull Time
Responsibilities:Developing applications, Writing modules, Reviewing designs
Requirements Summary:3-5 years of Java software development; strong OOD; Spring Framework, JPA/Hibernate, JEE; SQL/relational databases; HTTP APIs; Maven, Git; CI/CD.
Technical Tools Mentioned:Java, Spring Framework, JPA/Hibernate, JEE, Maven, Git, CI/CD, SQL, Relational Databases, HTTP APIs, RabbitMQ, Kafka, NoSQL Databases, Caching, Hazelcast, EhCache, Redis, Elasticsearch
Save
Mark Applied
Hide Job
Report & Hide
Job Description

The company

Upstream is a global leader in mobile marketing automation and digital service innovation, enabling Mobile Network Operators (MNOs) and brands to grow revenue, improve customer engagement and succeed in the digital economy. With over two decades of experience and operations spanning 45+ markets across Africa, Latin America, Asia, Europe, and the Middle East, we are a trusted partner to more than 60 MNOs worldwide.

Headquartered in Athens, Greece, and with regional hubs in London, Dubai, Johannesburg, Lagos, São Paulo and Rio de Janeiro, Upstream combines global expertise with deep local insight. Our end-to-end approach encompasses strategy, creative development, technical deployment, campaign execution, and ongoing optimization, ensuring seamless, scalable, and performance-driven service delivery.

The role

We are looking for an enthusiastic Software Engineer, Java, to join our Software Development team.

You will be part of a very competent team that works on mission – critical applications, contributing to all phases of the development process. You will be responsible for Java application development, supporting business objectives while providing expertise in the full software development lifecycle, from concept and design to testing.

Your main responsibilities will be:

  • Develop on high-volume, low-latency applications for mission-critical systems, delivering high-availability and performance.
  • Write well-designed, testable, efficient software modules.
  • Ensure designs comply with specifications and that specifications cover all needed aspects of the implementation.
  • Create/review design documentation and provide feedback on test plans.