Senior Python Engineer

London (Greater)
12 Oct 2018
10 Nov 2018
Contract Type
Full Time
Ometria's mission is to stop impersonal ‘one size fits all’ marketing campaigns and make the way retailers communicate with their customers more personalised and engaging. We are bringing the technology of the hyper-growth retail giants, like Amazon, to many more retailers utilising advanced data modelling and machine learning techniques, and this involves processing many millions of data points quickly and reliably.

Backed by top VC funds and successful entrepreneurs, and working alongside over a hundred of the fastest growing retailers, we are now looking for a Backend Python Developer to join our growing engineering team. You will work with this team, and the product team, to build the backend of the Ometria platform.

Your responsibilities:

*Software development* - coding! Once the solution is designed you will work with the team to implement it, delivering well structured and testable code. We use python 3 and you will be aware of best practices when it comes to producing great python code.

*Product development and design* - we believe that everyone should be product focused. You will participate in the full project lifecycle of new product features, working with the product manager to understand user stories, and then determining the best solution to solve them

*Quality control and testing* - being product focused means making sure that the solution actually solves the use case. You will work with the product manager and QA team to ensure product features meet client requirements and work robustly.

*Issue resolution* - we all take responsibility for what we have shipped, so if there is an issue you will take ownership and fix it as soon as possible.

*Ensure the privacy of our clients’ data* - we work with sensitive data that is of high value to our clients. You will strive to maintain data security first and foremost for every task you undertake.

Engineering Team:

The engineering team is currently 9 developers, split between frontend, backend and the CTO. We are looking to double this year!

We all work in the same office and value face to face communication. We work closely with the Product Owner and Product Managers.

We run two-week sprints, aiming to split time evenly between new features, technical maintenance and client-specific work.

As we are a small team we all punch above our weight and have varied experience, roles and responsibilities. One of our frontend developers is also one of our main Docker and Kubernetes experts!

Most of the team use Macbooks, but both Windows and Linux are represented: you can pick your tools, and we'll provide you with your preferred hardware when you join.

Here are some of the challenges we are thinking about right now:

Structuring our systems for scale: we're building a modern microservices based infrastructure that allows for autonomy of teams, fault tolerance, and reliable monitoring and alerting across services. We are looking to grow both the team and our client-base massively in the next few years. How can we make sure that the system can keep up with the data growth? How can we make sure our growing team can continue to onboard clients efficiently as we grow?

Optimising our reporting and inference engine: we need to run analytics over millions of data points in real-time. Our clients expect to be able to run complex segmentation queries across their entire dataset, which are fundamentally uncachable, and get a response in less than 5 seconds.

Some of our systems have very high availability requirements. How can we make sure that our user facing HTTP services are always available so that no customers of our clients are ever given a bad experience?
We will be increasingly working with US clients in the forthcoming year. How can we maintain a EU and US point of presence and keep releases in sync and both sets of infrastructure reliable with one team?

Tools & Stack:

Our clients interact with the Ometria platform through a single page web app, which uses the AmpersandJS framework, with a separate section in React.

The app communicates with the backend platform through various Python 3 APIs that use Flask. Python powers most of our backend services and workers, which perform tasks like importing and processing data, managing campaigns, sending emails and syncing data to third parties.

Our infrastructure runs on AWS, and is configured using Terraform. We use Docker and Kubernetes to deploy our services onto AWS EC2 nodes.

Our data is stored in Postgres (which runs on i3 instances to take advantage of fast NVMe SSD drives) and Redshift, and we use various queueing and messaging tools, including Google Pub/Sub, AWS Kinesis, AWS SQS, Beanstalk, Celery and Gearman.

Some older services are written in PHP (but we are working to rewrite these!), and if you squint you will see a small (but increasing) amount of Go.

We believe that it's awesome to be here. Here are a few of the benefits that make Ometria a great place to work:
* Unlimited holiday
* Regular socials and activities
* Committees and sports clubs
* Subsidised gym membership
* Personal development budget
* Personal wellness fund
* Salary sacrifice scheme for cycle to work and personal electronics
* Fully stocked kitchen with breakfast, snacks and drinks
* Your choice of equipment

Similar jobs

Similar jobs