Search Software Engineer
- Location
- South Africa
- Posted
- 14d ago
<p><strong>Takealot.com</strong>, South Africa’s leading online retailer, is looking for a highly talented <strong>Software Engineer (Search)</strong> to join our team. We are a young, dynamic, hyper-growth company looking for smart, creative, hard-working people with integrity to join us!</p> <p><strong>Think you’ve been challenged before? Think again!</strong></p> <ul> <li><strong>Scale</strong>: Over 4 million happy shoppers shop online on takealot.com. Show them what you can do.</li> <li><strong>Learn</strong>: We work with the best of the best. Code alongside industry leaders and up-skill in record time.</li> <li><strong>Grow</strong>: Expand your career in the fast-growing Takealot Group: takealot.com, TFS and Mr D. We like to promote from within: Here’s your chance.</li> </ul> <p><strong>Who’s who in the tech space</strong></p> <p>This position reports to the Engineering Manager</p> <p><strong>Your mission, should you choose to accept it:</strong></p> <p>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.</p> <p>The role is focused on maintaining our search stack. Experience with any kind of search technology (Solr, Algolia, etc.) is relevant.</p> <ul> <li>Design and build solutions to assist our business users and improve customer experience</li> <li>Architect and design solutions with your team</li> <li>Develop code, making major improvements to non-functional areas</li> <li>Develop high-quality production code for work of high complexity and scale</li> <li>Utilize and improve functional and non-functional testing practices</li> <li>Champion, challenge, and iterate on best practices within engineering</li> <li>Design solutions for complex problems with difficult decision trade-offs, typically system or domain-wide</li> <li>Participate in and collaborate on architecture proposals across engineering</li> <li>Support alignment of architecture across the organisation</li> <li>Respond to and resolve bugs in production for systems in your division</li> <li>Respond to alerts and support incident response within your division</li> <li>Investigate and drive the resolution of issues that impact multiple teams</li> <li>Support, challenge existing, and define new engineering processes and directives</li> <li>Review and contribute fixes and content to internal documentation</li> <li>React to technology trends, identifying risks and opportunities for your division's technologies, systems, and domains</li> <li>Share knowledge through blog posts, tech talks, and workshops across engineering</li> <li>Contribute to discussions and decisions in the division</li> <li>Challenge others to always produce work of the highest quality</li> <li>REST and RPC API implementation and maintenance (using Python)</li> <li>Develop and maintain automation tests</li> <li>Liaise with various internal stakeholders to discuss project requirements, progress, etc.</li> </ul> <p><strong>The skills we need:</strong></p> <ul> <li>Solutions-oriented, can-do attitude, and high energy</li> <li>Strong analytical and critical thinking, using data to inform decisions</li> <li>Ability to dis-aggregate and structure solutions to ambiguous problems</li> <li>Solid quantitative skills</li> <li>Capability to present ideas succinctly, in writing and verbally</li> <li>Versatile and with the appetite to learn by doing</li> </ul> <p><strong>Qualifications & Experience:</strong></p> <ul> <li>Bachelor’s degree or an Advanced Diploma in Computer Science, Engineering, or related field (or equivalent practical experience)</li> <li>5 to 10 years in a software development role</li> <li>Experience with search technologies (Elasticsearch, Vertex AI Search, Solr, Algolia, OpenSearch, Meilisearch, Typesense or any other major third party provider)</li> <li>A thorough understanding of computer science fundamentals, including object-oriented design, data structures, and algorithms</li> <li>Experience in writing robust, efficient production code</li> <li>Proficient in a strongly typed open source language such as Python</li> <li>Exposure to RESTful APIs and web services</li> <li>Experience with SQL database systems</li> <li>Experience with development in a Linux environment</li> </ul> <p><strong>Experience in the following will be advantageous:</strong></p> <ul> <li>Familiarity with microservices architecture </li> <li>Experience working in an Agile environment </li> <li>MySQL, PostgreSQL, MS SQL</li> <li>Memcached, Redis</li> <li>Message Brokers, Queues, and PubSub systems (e.g., Kafka and RabbitMQ)</li> <li>Containerisation (e.g., Docker)</li> <li>Orchestration (e.g., Kubernetes)</li> <li>GitHub, Travis CI, Jenkins</li> <li>AWS, GCP, Azure</li> <li>JavaScript, React, jQuery</li> </ul> <p><strong>Let’s talk about life @ Takealot Group</strong></p> <ul> <li><strong>The power is in your hands</strong>: We offer a market-related Total Remuneration Package that allows full flexibility according to your needs. Go on, be the master of your own destiny.</li> <li><strong>No doors</strong>: We aren’t fans of stuffy offices or siloed work environments. See someone you like, high-five, collab, and make something great.</li> <li><strong>Remote working</strong>: Enjoy the flexibility of working from home while having the option for in-office interactions. Takealot.com provides a fully remote setup with the choice to visit the office to relish in those water cooler moments when desired.</li> <li><strong>Mentors