Hash-Caching query results in Python

Developing data science products will in most cases require extensive testing and tuning models using historic data. At Gousto this is the case for a number of optimisation and machine learning algorithms powering our operations and marketing efforts. In turn, the majority of these cases will involve large volume data queried from a database. In order to maintain agility in developing your data-driven product the last thing you want is to wait for queries to complete while testing iterations to your code.

To prevent re-running large queries we can construct a simple Python method to cross-reference a hashed SQL query against stored query results saved under hash-filenames. Keep reading to find out how!

Keep Reading

Decyphering recipes

Last month we got the chance to present some of the work we have been doing at a neo4j meetup. In the lightning talk, I explained how neo4j has been helping us with our automatic menu planning process, a tool we use to predict similarity between different recipes. You can see the slides at the bottom!

Our weekly menus are a vital part of our business and we need to make sure we are offering customers balanced menus which give them the choice to pick recipes they really want. Therefore, a lot of thought goes into planning these menus, which need to fulfil several operational constraints and offer a range of ingredients and cuisines. With 22 recipes currently on the menu, the planning was a time consuming task and the process was also not as data-driven as it could be!

Keep Reading

A day in the life of a data scientist

There is no general consensus as to what a data scientist is or how to become one. Is she a statistician, an operations researcher or a broker between data analysts and developers? Perhaps identifying a data scientist’s work by her common tasks is not the best approach. Instead, why not run through a day on the data science team here at Gousto? This post is about a recent trip the team made to the company warehouse in Spalding.

Keep Reading

Gousto use (and love) Snowplow - slides from Snowplow London Meetup

I was presenting our journey of leveraging Snowplow at the 4th Snowplow London Meetup yesterday. I wrote about Snowplow before for those who don’t know what it is.

I was talking about our data infrastructure and use cases of machine learning that have helped us to be the leader in the recipe kit market in terms of the proposition we offer to our customers. Our customers can choose from 22 recipes and get their boxes delivered in 2-3 days from a choose 6 delivery days a week (we don’t deliver on Fridays at the moment).

Keep Reading

Beware arrow function overuse in React

Beware arrow function overuse in React components

There are lots of things to love about ES6 arrow function. The syntax is short and sweet and there’s no binding of this or arguments. Take the extremely simple function double below for example.

1
2
3
const double = function (a) {
return a * 2
}

Now here’s it is written as an arrow function using concise syntax.

1
const double = a => a * 2

You’ll note that the brackets around any single argument are optional, the curly brackets are optional, and the return is implied.

Keep Reading

Unit Testing with Sinon.js

When writing unit tests for javascript code, there may be a time when you need to stub part of your code in order to isolate and test a particular functionality of your code. This is where Sinon.js is a popular tool to help developers test their code.

Keep Reading

Isomorphic / universal React at Gousto

About half a year ago, we decided to build our new frontend stack using isomorphic/universal JavaScript leveraging React and its rich ecosystem both on client and server side.

Initially, we started out using React to create single page applications (SPA). This worked quite well, we had a clean and scalable JavaScript codebase removing the need for jQuery and other libraries.

Keep Reading

My first byte at Gousto

I joined Gousto in January this year and I thought it would be helpful for any developers who are interested in applying to hear what it’s like to work with us. When I applied I was working at a digital agency for a little over a year where I mainly worked with PHP CMS’s such as Drupal, alongside jQuery. And given that this is the first startup that I have ever worked for, I did not know what to expect. Nevertheless I was eager to have my first startup experience to learn something new and challenge myself in a fast paced environment.

Keep Reading

Unleash your data capabilities (with Snowplow Analytics)

Here at Gousto we are very customer and product focused, tailoring our service to customers all the time. For example, last year we were the first recipe delivery kit company to introduce shorter lead time, enabling our customers to receive their boxes 3 days after ordering, rather than 10 days as before. This year there is much more to come - I’m sure you will notice it.

Not only are such initiatives heavily data-driven, e.g. to ensure shorter lead-time being viable we need to forecast the demand very accurately, but we also strongly believe that data is voice of our customers and therefore (almost) all our decisions are based on and validated by data, no matter whether it’s in marketing, operations or food team.

To empower all our teams to produce a tailored made product, we’ve been working hard to set up state-of-the-art analytics pipeline providing them very granular and reliable data.

Keep Reading