Your mission, should you choose to accept it:


As a Software Engineer, you will be someone whose expertise directly translates into developing robust software in the e-commerce domain. You will have the opportunity to implement best practices to improve existing software and participate in the development of new features.
While we don't promote after-hours work as part of the regular workday, we run a 24/7 business with the need to keep systems up and running.
Software Engineers are expected to provide after-hours support on a rotational basis to resolve critical system issues if needed.
Design and build solutions to assist our business users and improve customer experience
Architect and design solutions with your team
Develop code, making major improvements to non-functional areas
Develop high-quality production code for work of high complexity and scale
Utilize and improve functional and non-functional testing practices
Champion, challenge, and iterate on best practices within engineering
Design solutions for complex problems with difficult decision trade-offs, typically system or domain-wide
Participate in and collaborate on architecture proposals across engineering
Support alignment of architecture across the organisation
Respond to and resolve bugs in production for systems in your division
Respond to alerts and support incident response within your division
Investigate and drive the resolution of issues that impact multiple teams
Support, challenge existing, and define new engineering processes and directives
Review and contribute fixes and content to internal documentation
React to technology trends, identifying risks and opportunities for your division's technologies, systems, and domains
Share knowledge through blog posts, tech talks, and workshops across engineering
Contribute to discussions and decisions in the division
Challenge others to always produce work of the highest quality
REST and RPC API implementation and maintenance (using Python)
Develop and maintain automation tests
Liaise with various internal stakeholders to discuss project requirements, progress, etc.


The skills we need:


Solutions-oriented, can-do attitude, and high energy
Strong analytical and critical thinking, using data to inform decisions
Ability to dis-aggregate and structure solutions to ambiguous problems
Solid quantitative skills
Capability to present ideas succinctly, in writing and verbally
Versatile and with the appetite to learn by doing


Qualifications & Experience:


Bachelor’s degree or an Advanced Diploma in Computer Science, Engineering, or related field (or equivalent practical experience).
5 to 10 years in a software development role
A thorough understanding of computer science fundamentals, including object-oriented design, data structures, and algorithms
Experience in writing robust, efficient production code
Proficient in a strongly typed open source language such as Python, Java, Golang, etc
Exposure to RESTful APIs and web services.
Experience with SQL database systems
Experience with development in a Linux environment


Experience in the following will be advantageous:


Familiarity with microservices architecture 
Experience working in an Agile environment 
MySQL, PostgreSQL, MS SQL
Memcached, Redis
Message Brokers, Queues, and PubSub systems (e.g., Kafka and RabbitMQ)
Containerisation (e.g., Docker)
Orchestration (e.g., Kubernetes)
GitHub, Travis CI, Jenkins
AWS, GCP, Azure
JavaScript, React, jQuery
  • ICT
  • Computer