Machine Learning engineer
Machine Learning engineer
- Machine learning
What does a Machine Learning Engineer do at Canva?
Canva’s mission is to empower the world to design, and the first step is helping people find the design elements they need – images, templates and vectors for example. Our goal as machine learning engineers is to connect users with the content that they want. We build search technology to help users find what they’re looking for, and make suggestions for content that might inspire them in the design process. That removes a whole step in the traditional design process – searching around for images and templates and then importing them into your design software.
Our millions of users produce a lot of data, and we can use that to train models that improve the relevance of our content. If users click on certain design templates or use certain images for example, we can use that to predict what similar users might like to do. On the search side, we build models to rank content based on past user queries so items that are more frequently selected in a given context will be pushed to the top of the search results.
The Search and Recommendations team is still fairly small, so our engineers fulfil the roles of both data scientist and machine learning engineer. We work out statistical models based on user actions and business objectives, and also productionise those models.
What technologies do you use as a Machine Learning Engineer?
For data pipelining we use Amazon Data Pipelines, so that’s where a lot of our transformation and loading happens. Most of our data processing uses Apache Spark, and we also use the machine learning packages within Apache Spark. Recently we’ve also been exploring a number of Deep Learning platforms. In terms of languages, we typically use Scala. We prefer to use a small number of highly flexible technologies.
Why is Canva a good place to be a Machine Learning Engineer?
We have many millions of users and billions of records, so in terms of training models it’s an ideal environment. The reason we’re able to use Deep Learning for example is the sheer amount of data that we have.
The infrastructure team gives us great support, which is very important for machine learning because if you’re trying to productionise something you need the right infrastructure behind it. That includes access to the data that we need to build our models, the computational resources to deploy them and the support to integrate the recommendations we generate into the main application. We have a lot of great engineers at Canva who know what it takes to build a great machine learning system, and that makes my life a lot easier.
Machine learning at Canva is still quite new, so there’s no shortage of areas to explore and low hanging fruit that will have a huge impact on Canva’s user base. You’ll get to build a lot of things yourself, not just maintain existing systems. On the one hand that’s a challenge, but on the other hand it means you’ll learn a lot.
What do you find most interesting about your job?
I love all the interesting challenges that come up as part of my work. One challenge for example is the need to build models that balance accuracy and scalability. Running our solutions with low latency for our huge user base is an important factor to consider, on top of the mathematical challenges of building the model itself. With so many people using Canva, it also means that everything you push out has a big impact.
Another challenge is the diversity of the content and user base we work with. It’s an international product serving users with a wide range of objectives, so helping users find the right content isn’t a simple task. There’s also a large temporal element, because a lot of templates relate to specific yearly events like national holidays. Just because the majority of our users celebrate Christmas for example doesn’t mean that it’s appropriate to send everyone that recommendation. On the search side, it’s important to consider diversity within the result set we return. If I’m a user in Africa for example, I probably want to see African people represented in my search results. So our work spills over into the keyword system we use to index documents.
There are going to be even more interesting challenges in the future. Ultimately for example we might want to build models to automatically suggest keywords for our documents, or use AI to recognise related styles between documents and use that to generate recommendations based on user preferences. AI-assisted design is a field that no-one has really tackled, and we want to be at the forefront of that.
What skills or experience are you looking for when hiring Machine Learning Engineers at Canva?
The machine learning engineer role here does involve a lot of data science as well, so understanding data engineering and being able to relate data to business objectives is a very important skill. In terms of pure machine learning work, we’re looking for people who are curious to explore new ideas and also passionate about optimising systems. You’ll need a very principled engineering approach and a good understanding of how to score and measure the performance of the systems you build.
A fundamental appreciation for some of the math involved is also important. You don’t need a PhD in math, but you should have a decent grasp of the mathematics involved.