Software Engineering Manager (Discovery Machine Learning)
IT – Software Development
Cape Town – Western Cape
THE expertise and strong leadership of a customer-centric & solutions-driven Software Engineering Manager is sought by a rapidly growing eCommerce Platform to lead a team of Machine Learning Software Engineers. You will help ensure the team constantly strives for quality solutions that are delivered on time, within budget and scope, and drive a culture of quality and personal accountability. You will need a strong and pragmatic understanding of Machine Learning development and have direct experience building high performance, scalable backend and RESTful web applications. The ideal candidate will also require a Bachelor’s Degree/Advanced Diploma in Computer Science/Mathematics/Stats or similar with 5 years’ Software Development experience of which 3 years’ must have been developing production-grade Machine Learning solutions. This is an exciting opportunity to lead a growing team of Engineers working on an ambitious Development roadmap of one of the platform’s key AI focus areas: Search & Recommendations.
- This is a hands-on role, and you should expect that at least 30% of your time will be spent writing code and building Machine Learning models.
- Working with others on your team directly contributing to the production of code and models.
- The remainder of your time will be split between architectural and strategic planning with peers and Senior Developers, and the day-to-day people management and development required of a high-performing and successful team.
- Be an advocate of Agile and Iterative Engineering practices and you will have prior line management experience with a track record of keeping highly skilled developers motivated.
- Bachelor’s Degree or Advanced Diploma (Computer Science, Mathematics, Statistics, Machine Learning or Engineering) and a minimum of 5 years’ Software Development experience, of which a minimum of 3 years’ developing production-grade Machine Learning solutions is required.
- In the event that a candidate does not have a Bachelor’s Degree or an Advanced Diploma (Computer Science, Mathematics, Statistics, Machine Learning or Engineering), an equivalent experience requirement must be met, which equates to a minimum of 8 years’ of Software Development experience, of which a minimum of 5 years’ developing production-grade Machine Learning solutions is required.
- A minimum of 3 years’ managing and leading a software engineering team, including mentoring and developing technical teams, line management of teams and performance management of teams. – In the event of no prior management experience, at least 3 years’ delivering significant Machine Learning solutions as a technical lead, is required.
- Providing guidance to fellow engineers, evaluating and comparing model performance and model architecture, performing error analysis, and hyper parameter tuning.
- Experience leading a team technically, with a focus on high-quality output.
- Experience working within an Agile team that is operationally hands-on, and an advocate of that culture.
- Experience developing software in Python in a test-driven environment (and/or at least in one of the following languages: Java, C, C++ or C#).
- A thorough understanding of computer science fundamentals, including object-oriented design and data structures and algorithms.
- Experience with MySQL or Postgres, and BigQuery or a similar technology in a high-load environment.
- Significant technical experience and a proven track record of architectural ownership and understanding.
- Experience in developing distributed, high transactional and available systems.
- Experience working with Big Data: data volume, variety and velocity.
Preferred experience and skills –
- Developing software for a highly transactional retail online platform.
- A thorough understanding of software engineering practices and best practices, including agile software development, source code control systems and the use of software IDEs and development and testing tools.
- An understanding of software deployment tools, deployment processes and best practices.
- Working with NoSQL data stores.
- Experience working with Kafka.
- Working with the AWS and/or GCP platforms, and Docker and/or Kubernetes.
- Building RESTful API Web Services and Microservices.
- Experience with Natural Language Processing (NLP).
- Experience with search systems and technologies such as SOLR or Elasticsearch.
- Building customer recommendation models (e.g., Collaboration vs. Content-based, Item-to-Item vs. User-to-Item).
- Experience with Jupyter notebooks.
- Experience with Scikit-learn, SciPy, Numpy, Pandas and PyTorch.
- Experience with TensorFlow, TensorFlow Extended, TensorFlow Serving.
- Experience with Kubeflow and Dataform.
- Customer centric.
- Solutions and results oriented.
- Natural leader.
- Innovative problem solver.
- Curious thinker that understands technical topics beyond the average reader.
- An ambitious and hard-working individual prepared to do more than the 9 to 5 to get up to speed.
- An influencer that constantly grows the quality of engineering through technical initiatives.
- Effective time management and organisational skills.
- Proven ability to develop and maintain positive working relationships.
- Must be comfortable with rapidly changing and/or loosely defined requirements that are refined over time.
- Skilled at active listening and capable of facilitating discussions.
- Strong communication skills with both internal team members and external business stakeholders.
- Strong initiative to find ways to improve solutions, systems, and processes.