farfetch logo

Senior Software Engineer - Data (Private Client)

PT Lisbon Technology - Engineering Permanent
The role

We are looking for a Senior Software Engineer to join our effort in creating data products and automation to improve the loyalty and retention of Private Client customers, who are among the most sophisticated luxury lovers on the planet. 

As the largest luxury fashion platform we work with over 3000 brand and boutique partners giving us an unrivalled breadth of stock (over 300 000 items), creating a large amount of data that we can leverage through machine learning and automation to create value for the business by creating  tools and systems to optimise communications and marketing, with the aim to increase our Private Client base and keep it loyal to Farfetch.

Our cross-functional team is responsible for the end-to-end functioning of large-scale and complex machine learning projects directly providing business critical functionality to other teams and using the latest technologies in the field.

Working collaboratively with Data Scientists, Analysts, and other technical teams, both here in London and across our other locations, you’ll be shaping the technical direction of a critically important part of Farfetch.  

We are looking for someone who is a self-starter, willing to own complex projects from start to finish and ensure their delivery. This will require working with Data Scientists, Analysts and other engineering teams within Data and the whole organisation to productionise and integrate data science solutions with the relevant internal business products or operational systems..


What you'll do

Our team works with vast quantities of data coming from our operational systems (e.g. orders, online visits, stock levels, pricing data), applying machine learning and statistical techniques to transform it into a format that can be readily used within the business.

As an Engineer within our team you will help to shape and deliver the engineering components of the services that our team provides to the business. This includes the following:
- Work with technical stakeholders to help design and  implement new or existing parts of the system architecture.
- Work on surfacing the team’s output through the construction of ETLs, APIs and web interfaces.
- Work closely with the Data Scientists within the team to enable them to produce clean production quality code for their machine learning solutions. Examples of models currently in production include different time series forecasting and optimisation techniques.


Who you are

First and foremost, you’re passionate about solving complex, challenging and interesting business problems. You have solid professional experience with Python and its ecosystem, with a  thorough approach to testing.

To be successful in this role you have:
- Experience designing and developing complex engineering systems from end-to-end, ranging from liaising with business stakeholders to determine project requirements through to the system design and construction.
- The ability to have a holistic view of a large engineering system and to be able to proactively identify and solve issues in it.  
- Extensive experience of writing production quality code in Python 3.
- A strong  understanding of the Python ecosystem, including, for example, dependency management and testing frameworks.
- Experience with web frameworks, including Flask or Django.
- Experience with orchestration/workflow management frameworks e.g. Airflow.
- Ideally, exposure to batch and streaming processing (Hadoop, Kafka, Flink, Beam, Storm, Samza).
- Ideally, experience with big data processing in Spark.
- A good knowledge of Docker and Docker Swarm.
- Experience with monitoring frameworks (InfluxDB, Grafana and Prometheus).
- DevOps mindset and experience with relevant technologies (e.g.,Terraform, Ansible, Kubernetes) and Cloud Environments (Azure, Google, AWS), CI/CD.