Senior Software Engineer (Python)
Reporting to: Engineering Manager
About The Department
We're the beating heart, supporting the running of the business and exploring new and exciting technologies across web, mobile and instore to help us transform the industry. Split across three main offices - London , Porto and Lisbon - we are the fastest growing team in the business. We're committed to turning the company into the leading multi-channel platform and are constantly looking for brilliant people who can help us shape tomorrow's customer experience.
About The Role
The firm relies heavily on insights gained from data to guide feature development and on metrics to detect new areas of improvement. This position will contribute to the engineering of the next-generation data science products and interfaces that connect our Machine Learning technology to the vast ecosystem of internal applications. The ideal candidate will be comfortable in a startup environment and will bring an energetic, fun and creative approach to their work.
A flavor of what we use in the data science team: Docker, Flask, Pytest, Scikit-learn, TensorFlow, pyTorch, NumPy, pyStan, SqlAlchemy, Celery, RabbitMQ, Postgres, MSSQL, Hadoop, Hive, Spark, BigQuery, ElasticSearch, Terraform, Ansible, Google Compute Engine.
What You’ll Do
- You will collaboratively design, build, and maintain Python microservices in our multi-cloud data platform.
- You will collaborate with Data Scientists, Big Data, Software Engineers, Tech Ops, and Release Engineers to deliver efficient data products.
- You will provide creative ideas to improve our product and technology.
- You will assist Data Scientists in maintaining the health of production systems.
- You will design and develop scalable and performance oriented services with strong emphasis in algorithmic design and scalability.
- You will work with the Big Data team to develop and maintain large-scale Data Science services.
Who You Are
- You are experienced with 3-6 years in a software engineer role.
- You are a Bachelor’s degree- and/or Master’s degree-holder in Computer Science with strong algorithms, data structures and coding background.
- You are proficient in Python and experienced in the creation of services using frameworks like Flask/Django.
- You are experienced in the scientific stack (numpy, scipy, sklearn, pandas).
- You are disciplined in approach to testing and QA (TDD/BDD, code review, documentation).
- You are experienced in distributed systems, service oriented architectures, design and implementation of high throughput, low latency applications.
- You are experienced in containerization tools like Docker and configuration management tools like Ansible.
- You are experienced building and scaling batch/asynchronous systems. Airflow/Luigi/Celery/RabbitMQ.
- You have solid knowledge of the whole stack: front-end, back-end, databases, cache layer, HTTP protocol, TCP/IP, Linux, CPU architecture, etc.
- You have a solid understanding of the pros and cons of SQL/NoSQL.
- You have experience in designing large scale systems that take advantage of Big Data technologies like Spark, Hadoop, Hive, BigQuery, etc. (a plus).
We can’t wait to receive your application. But before you send it to us, here are some helpful tips to make sure your application is as strong as it can be.
- Have you set out why this role is a good match for your career aspirations and that you have the skills and experience required? We want you to be as clear about your future ambitions as we are and whilst we encourage people to learn, develop and grow, you will need to hit the ground running.
- Have you checked spelling and grammar? We have high standards and you don’t want to miss out because of something as easily correctable as a typo.
We are committed to equality of opportunity for all employees. 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.