This role is fully remote

Think you’ve been challenged before? Think again!

  • Scale: Over 2.5 million happy shoppers shop online. Show them what you can do.
  • Learn: We work with the best of the best, and then some. Code alongside industry leaders and up-skill in record time

What does the Engineering team do?

The Discovery backend engineering team is primarily responsible for the engineering of backend systems related to how customers discover products on the shopping Site and Apps (exposing functionality for search, product information, landing pages, deals, product vendor feeds, advertising, etc) – typically providing REST and RPC API python microservices for our web and app shopping frontend teams, and also for integration to marketing aggregators, advertising feeds and CRM providers.

Who’s who in the tech space

This position reports to the respective team’s manager.

As a Senior Software Engineer, you will be someone whose expertise directly translates into the development of 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.

Your mission, should you choose to accept it:

  • 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
  • Manage change in technologies in the division with due diligence
  • Design solutions for complex problems with difficult decision trade-offs, typically system- or domain-wide
  • Lead architecture proposals for your division’s domain
  • Participate in and collaborate on architecture proposals across engineering
  • Own the maintenance of architecture documentation in the team
  • Support alignment of architecture across the organisation
  • Be on-call for systems owned by your team
  • 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 resolution of issues which impact multiple teams
  • Triage and respond to hot-desk support tickets
  • Assume technical lead on major incidents impacting the division
  • Lead technical analysis, and design specification documentation
  • Assist with sprint planning, work estimation, and project prioritisation
  • Assist the product teams in helping to determine priorities for technical projects
  • Support, challenge existing, and define new engineering processes and directives
  • Lead interviews and assess potential engineering candidates for skills and fit
  • Review, and contribute fixes and content to internal documentation
  • React to technology trends, identifying risks and opportunities for your divisions technologies, systems, and domains
  • Mentor, coach, and share knowledge with your peers in your division
  • 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
  • Take on technical project leadership roles for projects across the division
  • REST and RPC API implementation and maintenance (using Python)
  • Develop and maintain automation tests
  • Peer review of team code
  • Liaise with various internal stakeholders to discuss project requirements, progress etc.
  • Analyze and understand business requirements and OKRs (Objectives and Key Results) and produce technical specifications that meet these requirements

Qualifications & Experience:

  • Bachelor’s Degree or Advanced Diploma in Computer Science, Mathematics or Engineering or equivalent experience in software development.
  • In the event that you do not have a Bachelor’s Degree or an Advanced Diploma (Computer Science, Mathematics or Engineering), an equivalent experience requirement must be met, which equates to a minimum of 8 years’ of Software Development experience
  • A thorough understanding of computer science fundamentals, including object-oriented design, data structures and algorithms
  • 5 to 10 years in a software development role
  • Experience in writing robust, efficient production code
  • Experience with SQL database systems
  • Experience with development in a Linux environment
  • Proficient in a strongly typed opensource language such as Python, Java, Golang, etc
  • Open to diversifying language skill set

Experience in the following will be advantageous:

  • JavaScript, React, jQuery
  • 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

Desired Skills:

  • python
  • java
  • golang
  • Javascript

Learn more/Apply for this position