This role can be in office or fully remote.
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 newfeatures. While we don’t promote after-hours work as part of the regular workday, we run a 24/7business 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 that 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 division’s
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 orequivalent experience in software development.
-
? A thorough understanding of computer science fundamentals, including object-orienteddesign, 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
- Javascript
- Engineering Software
- Software architecture
- Development Of System Software