A day in the life of an Algorithmic Artichoke

Being a Machine Learning Engineer at Gousto

My background

I’ve been working in start-ups in London for more than 6 years, mostly as a Front End Engineer, but slowly I’ve moved closer to the world of Data Science. The opportunity to make the jump arose in 2016 at the company where I was working (Arbor Education) and voilà… I had finally entered the new and exiting world of Machine Learning! (I made it sound a tad easier than it actually was)

The journey with Gousto

When I started my job at Gousto in August 2017, I knew I would be joining the Algorithmic Artichokes* team as Machine Learning Engineer; the team was made up of 3 Data Scientist, and I would be the interface between them and the wider Gousto Tech.

Example of non-algorithmic artichokes

What this meant in practice, or what I would be doing day-to-day, was not very clear to me. All I knew is that I was eager to join a team of smart and motivated people and help Gousto solve complex and interesting problems using AI.

Almost one year and a half later things are very different: a new (amazing) office, and a more mature team: not only we hired two additional Data Scientists and one Data Engineer (and we’re planning to reach 12 members in 2019), but both our processes and quality standards have improved, to the point that we’re confident enough to spearhead the adoption of new technologies (e.g. Docker, AWS ECS).

What is a MLE anyway?

Now that we’re in the process of hiring a new Machine Learning Engineer (MLE), it’s important to outline what this role involves at Gousto, as different companies have very different meanings for this position, given how young the whole field is.

There is no straightforward definition of what an MLE is at Gousto, but I’m going to try with a metaphor: imagine a bridge between Data Science, Data Engineering, DevOps and Software Engineering †.

As personality traits go, a jack of all trades (I prefer the term multipotentialite) fits quite well in this role: one needs to be ready to switch context often and quickly, and be confident in quite a few different areas of expertise. And like all good bridges, a MLE’s mission is to facilitate communication and cooperation, using their unique viewpoint to bring together people with different mindsets and skills.

This very useful blog post, although a bit discouraging, gives a good overview of the reasons why the role has become relevant, and what its perks (and challenges) are.

What the role involves

A typical sprint can include tasks as disparate as:

  • Explore a new serverless technology that can reduce the cost of our algorithms in production
  • Introduce Docker image inheritance and abstract common functionality in all our data products
  • Work with a Data Scientist to find the best features to feed to our LSTM network
  • Work with a Data Engineer to build a future-proof ETL architecture

If this wasn’t enough food on one’s plate, we Artichokes have a few regular initiatives that make our job even more interesting:

  • Algo Design Surgery, where the whole team brainstorms and whiteboards possible approaches for one of our algorithms
  • Paper Club, where we discuss a scientific paper or blog post about a topic we find interesting

On top of that, the whole of Gousto Tech has an initiative called Tech 10%, a tenth of our sprint dedicated to learning and exploring new ideas/technologies, in other words to do what you like but the business doesn’t necessarily prioritise.

The projects I’ve participated to include:

  • Training an autoencoder on recipe images to then cluster them
  • Create a custom Airflow UI that helps us decide the best time to re-deploy
  • Optimise numpy’s performance by choosing and tuning its low-level linear algebra library

Oh, I almost forgot the most important project: the over-arching challenge for 2019 is to build our own Machine Learning platform; a relatively novel concept on its own, and one that only a few big companies (e.g. Facebook, Uber) have attempted to implement.

Wrapping up

I hope I was able to paint some kind of picture of what a MLE’s responsibilities and daily challenges are at Gousto.

If all of this didn’t scare you and you think this is the kind of job you would like to have, this is the link to the job spec!

Note: you don’t have to like artichokes to apply! (in fact, they’re my least favourite veggie)

* Tech teams at Gousto are named after vegetables: Coding Carrots, Platform Potatoes, Mobile Mushrooms, etc…

I know what you’re thinking, 4 banks are way too many for one bridge, but someone topped that