Back End Developer (Microservices, Go, Scala, Java/Python)
IT – Software Development
Cape Town – Western Cape
An innovative Investment Firm seeking the coding talents of a Back End Developer to help integrate world class and diverse systems together in helping to solve vital problems and provide cutting-edge features to the business. They have adopted a Microservices architecture with RESTful API’s predominantly written in Scala, with some built in Go. Their Microservices are built and deployed on an elastic containerized infrastructure supported and managed on premises through Kubernetes. This opportunity allows you not just to develop solutions that allow us them build better software, but also form part of a DevOps team where you will get to explore all aspects of web application architecture, solution design, scaling and testing.
- Analyse and design new features.
- Write elegant robust code.
- Write Unit, Integration and Acceptance tests for all components.
- Write build and deployment automation scripts.
- Improve and optimize the performance of existing systems.
- Troubleshoot and root-cause errors.
- Mentor other Developers.
- Deliver features timeously.
- Tertiary qualification in Computer Science, Computer Engineering, Information Systems or related technical discipline.
- At least 3 years’ worth of professional Development experience.
- Proficiency in modern microservices programming language such as Go, Scala, Java or Python.
- Proficiency in a database technology such as SQL Server, Oracle, MySQL or PostgreSQL and Object-relational mapping.
- Since we are a multi-technology environment, knowledge of Computer Science fundamentals in Object-Oriented design, data structures and algorithms are a necessity.
- Knowledge of professional Software Engineering practices for the full Software Development Life Cycle, including coding standards, code reviews, source control management, build processes and testing.
- Strong software design skills.
- Experience in distributed computing and building enterprise-wide systems.
- Proficiency in message queueing technology such as RabbitMQ.
- Docker, Kubernetes, Microservices knowledge/experience.
- Functional Programming knowledge.
- Attention to detail.
- Good interpersonal skills, ability to work with diverse personality types and deal with conflict in an effective way.
- Ability to work individually and with teams within an Agile context.
- Experience in influencing best practices within teams.