ML Software Engineer at Marks & Spencer (London, UK)
Location: London, UK
Type: Full Time
Created: 2021-05-05 05:00:25
M&S is leveraging the power of data science to solve business problems and improve the customer offer. As the M&S Data Technology team we need to support our data science teams to deliver machine learning (ML) solutions and enhance our underlying data environments and processes to meet a growing dependency on ML. We are focused on making it easy for ML models to be deployed and managed at scale in production.
We are looking for a passionate ML Software Engineer to join our team and work with data scientists. This role will help discover and implement state-of-the-art solutions for our ML projects to enable rapid experimentation, increase accuracy of our models and ensure high quality of our products. This role will be part of a collaborative team that is integral to establishing the environments and processes to quickly build and deploy ML solutions into production.
The ideal candidate will have hands-on software engineering experience building cloud-based ML solutions. A strong understanding of cloud technology (preferably Azure), distributed systems, open-source frameworks and how these can be used to build applications is strongly desired.
- Interact with the Data Scientists, Ops engineers, and software engineers to understand business problem and define specific approach for ML project.
- Collaborate with Data Science team members to develop ML solutions making use of repeatable frameworks/patterns (e.g. adding orchestration, model management, and integration with wider data ecosystem, etc).
- Follow CICD best practice to add automation to projects to enable faster deployments.
- Act as gatekeeper for quality of data science projects before they go into production. Where required develop/improve quality of code following software engineering best practice and coding standards.
- Carry out production deployments of projects and fulfil any change management obligations (knowledge transfer sessions with wider ops team, write short SOPs for common failures, etc)
- Support of existing ML production solutions working closely with ops engineers and data science team to triage any production issues that can’t be solved by first line support. Work with 3rd party engineers when required (e.g. Databricks, Microsoft)
- Work on a backlog of activities to improve ML Ops maturity in the organisation.
- Help identify, prioritise and deliver enhancements to ML platform tech stack. E.g. contribute to POCs and RFPs to fairly assess and select suitable tools.
- Time to deliver ML projects into production.
- Number of incidents/failures relating to ML projects in production.
Skills & experience:
- Expertise/knowledge of cloud native data tools (preferably Azure). E.g. Databricks, Azure Machine Learning (or similar), Azure Data Factory (or similar), Git, Jenkins, Azure DevOps (or similar), Feature store technologies, etc.
- Wide experience with containerisation tools e.g. Kubernetes, Docker, etc.
- Good understanding of ML and AI concepts (supervised and unsupervised techniques)
- Highly proficient in Python
- Good knowledge of Bash and Unix command line toolkit.
- Experience in CI/CD/CT pipelines implementation.
- Understanding/experience of feature engineering and hyperparameters for various ML algorithms using Azure components like Azure Data bricks, Pyspark, Spark MLlib/Scikit pipelines, Python, pandas, numpy.
- Understanding/experience of MLOps and CICD using components like GIT, Azure DevOps or Jenkins, Container Registries, Kubernetes, Docker,
- Understanding/experience building micro services/REST APIs using Python frameworks like Flask or Django, Azure LogicApps, Azure Functions
- Experience with Agile software development methodologies
- Good communication skills in English (both verbal and written).