Software Engineer - Data Science and Big Data
Digital Marketing is one of the largest teams at Farfetch consisting of 50+ people split across 5 main teams; Performance Marketing, SEO, CRM, Analytics and Data Science. Made up of experts in the field from a variety of different industries, they are responsible for working across all of our global markets. They make sure our presence remains high and mighty with new and existing customers, setting us apart from our competitors and ensuring we are always one step ahead of the curve.
FOR THE BOLD. THE ONES WHO CHALLENGE CONVENTION AND DARE TO DREAM.
Farfetch relies heavily on insights gained from data to guide product development and metrics to detect improvements in experiments.
This position will contribute to the engineering of the next-generation data science products and interfaces that connect our Data Science technology and knowledge to the vast ecosystem of internal applications. The role is responsible for building scalable and efficient data products and take advantage of Farfetch’s Big Data infrastructure to serve our customers. The role also works with the Big Data engineers, making sure that the infrastructure meets the Data Science needs.
The ideal candidate will be comfortable in a startup environment and will bring an energetic, fun and creative approach to their work.
What You’ll do:
- Collaborate with Software Engineers, Data Scientists, Big Data Engineers, DevOps, Release Engineers and others to deliver efficient data products.
- Design and develop scalable and performance oriented services with strong emphasis in algorithmic design and scalability.
- Work with the DevOps and Release Engineering teams on the release and maintenance processes for the developed software.
- Design and analyse experiments to test new ideas to improve our personalization algorithms.
- Work with the Big Data team developing and maintaining large scale Data Science services.
- Participate in the choice of the appropriate data stores for each service. Using Big Data and NoSQL data stores when necessary and taking into consideration the identified trade-offs of distributed systems.
Who You Are:
- MS or PhD in Computer Science/Engineering or other quantitative related field.
- 4+ years’ experience in test-driven software development, preferably working in distributed systems and/or high performance computing.
- Expert in Python and experience in the creation of Python services using its backend frameworks (e.g. Flask, Django).
- Expert in building scalable, maintainable and high performance solutions.
- Experience in designing and implementing complex services, often made of separate APIs.
- Experience in designing large scale systems that take advantage of Big Data technologies.
- Understanding of the multiple types of distributed data stores and their trade-offs. Ability to evaluate what data store is more appropriate for a given set of constraints.
- Understanding of software as a service design and standard web service technologies (HTTP, JSON, etc).
- Solid understanding of data structures and technologies such as SQL, Mongo, Redis, ElasticSearch.
- Experienced in batch and real-time data processing frameworks like Hadoop, Spark, Kafka, or Storm.
- Background working in cloud environments – AWS, Rackspace, Azure, etc.
- Experience providing practical business insights from large, vast and unstructured data sets
- Proven ability to develop and ship robust machine learning solutions to solve business problems.
- Experience with Linux and Docker.
- Strong scripting ability and knowledge of versioning systems (Git).
- Ability to clearly communicate findings to technical and non-technical audiences - verbal and written.
- Experience with Jenkins is considered a plus.
- Familiarity with system administration tasks is considered a plus.
We love hearing from you and want you to be as ambitious as we are, but before applying please ask yourself the following…
- Is this role a good match for me and my long term goals? We want to really know why you have chosen this career.
- Do I have all the skills and experience required for this role? Be realistic. We will only consider applications that demonstrate relevant skills or the potential to match the role requirements.
- Spell Check. As simple as it sounds make sure your application is to the highest standard. You will be surprised at how many applications we receive with spelling mistakes on them.
We are committed to equality of opportunity for all staff, applications from individuals are encouraged regardless of age, disability, sex, gender reassignment, sexual orientation, pregnancy and maternity, race, religion or belief and marriage and civil partnerships