Kris Howard

On May 6th, 2015, Canva hosted the first of a series of quarterly tech talks. Our goal is to bring together like-minded software craftspeople to share knowledge and experiences. The Sydney tech community already has an excellent range of recurring events (such as SydJS, Women Who Code, and Web Directions), but we’ve decided to maintain focus on topics particularly relevant to starups with this new event series. We aim to showcase speakers from both inside and outside Canva. Our first night of talks was on the topic of scalable startup technology. Read more...

David Hearnden and Kris Howard

As the Canva engineering team continues to grow, we’ve started to codify some of the “tribal knowledge” that previously went unspoken. This post is our attempt to describe the practices we’ve found help us work more efficiently as a team. It’s been really useful so far as a survival guide for new engineers, so we thought we’d share it. This isn’t meant to be a prescription for every team; it’s just what works for us. Read more...

Brendan Humphreys

Canva’s design editor features an auto-save function. While you’re working on a design we periodically send differences to our server. This means you don’t lose too much work if your computer crashes or you accidentally close your browser tab. During periods of heavy use, we needed a mechanism to ask the browser and iOS applications to back off and reduce the frequency of auto-saves. Read more...

Josh Graham

As an engineering team grows (along with functionality and number of users), the need for consistency in some areas increases dramatically. You quickly notice problems if the technology with which the software is developed differs from the technology on which it is deployed, and if developers have local environments that differ because their machines are self-managed. It also makes for an increasingly challenging exercise for new starters to become effective quickly. We’ve decided to build a Standard Development Environment (SDE) to address these issues. Read more...

David Hearnden

Today, I’m testing new features of Canva’s dynamic flag system. Next to me, a fellow engineer is working on the pipeline that updates design images in response to design edits. These are separate features, and both have broad reach through components that make up Canva. As we iterate, each of us is running an isolated, functionally-complete Canva universe, of between 16 and 32 separate components (depending on how you count). We can exercise Canva’s full suite of features: creating and publishing designs, searching images, purchasing and downloading prints, browsing the social graph, interacting with designs in the stream, and so on. We’re not doing this using a vast network of distributed machines; we’re doing this entirely within the confines of our laptops, without even needing network. Read more...