Homepage
Open in app
Sign in
Get started
Canva Engineering Blog
The technology behind Canva
UI/UX
Backend
Machine Learning
Infrastructure
Security
Engineering Practices
Follow
Announcing our new engineering blog
Announcing our new engineering blog
Canva engineering blog is moving to its new home.
Canva Engineering
May 3, 2023
A Journey through Color Space with FFmpeg
A Journey through Color Space with FFmpeg
For those who want to understand color spaces, transform videos from one color space to another, or read how I almost went crazy working…
Canva Engineering
Apr 16, 2023
Discovering Headroll (CVE-2023–0704) in Chromium
Discovering Headroll (CVE-2023–0704) in Chromium
Discovery of Headless Chromium security vulnerability, how it works, and mitigations that should be applied to similar configurations
Canva Engineering
Apr 5, 2023
Understanding a Diverse User Base with Frequency Segmentation at Scale
Understanding a Diverse User Base with Frequency Segmentation at Scale
How we developed a bespoke frequency-recency segmentation to understand our users’ diverse usage patterns
Canva Engineering
Mar 15, 2023
Deep Learning for Infinite (Multi-Lingual) Keywords
Deep Learning for Infinite (Multi-Lingual) Keywords
How we used a CLIP-inspired model to suggest keywords for template labeling in multiple languages
Canva Engineering
Jan 24, 2023
From Zero to 50 Million Uploads per Day: Scaling Media at Canva
From Zero to 50 Million Uploads per Day: Scaling Media at Canva
The evolution of media persistence during hypergrowth at Canva
Canva Engineering
Nov 29, 2022
Search Pipeline: Part II
Search Pipeline: Part II
More on how we are rebuilding Canva’s search stack and pipeline
Canva Engineering
Nov 16, 2022
Search Pipeline: Part I
Search Pipeline: Part I
How we are rebuilding Canva’s search stack and pipeline
Canva Engineering
Nov 1, 2022
Simple, Fast, and Scalable Reverse Image Search Using Perceptual Hashes and DynamoDB
Simple, Fast, and Scalable Reverse Image Search Using Perceptual Hashes and DynamoDB
How we built our first iteration of content matching at Canva
Canva Engineering
Oct 16, 2022
How We Used Data to Optimize Our Quality Assistance Model
How We Used Data to Optimize Our Quality Assistance Model
From firefighting chaos to problem solving zen
Canva Engineering
Aug 28, 2022
Supporting GPU-accelerated Machine Learning with Kubernetes and Nix
Supporting GPU-accelerated Machine Learning with Kubernetes and Nix
It ain’t what you don’t know that gets you into trouble — well, sometimes it is
Canva Engineering
Jul 4, 2022
Testing Search Engine Optimization Scalably without Breaking a Sweat
Testing Search Engine Optimization Scalably without Breaking a Sweat
Scaling pre-development, rollout, and post-production SEO testing at Canva
Canva Engineering
Jun 20, 2022
We Put Half a Million files in One git Repository, Here’s What We Learned
We Put Half a Million files in One git Repository, Here’s What We Learned
Using a monorepo causes a lot of performance challenges for git. Here’s how we solve them at Canva
Canva Engineering
Jun 15, 2022
Service-aligned Data Platform Architecture
Service-aligned Data Platform Architecture
How the data analytics platform team scaled data ingestion from various services at Canva
Canva Engineering
Jun 8, 2022
CSS: Absolutely positioning things relatively
CSS: Absolutely positioning things relatively
Using CSS grid to render complex webpages responsively
Canva Engineering
May 24, 2022
Infrastructure is Distribution
Infrastructure is Distribution
How we position Infrastructure Engineering as a value-add
Canva Engineering
Mar 14, 2022
Speeding up UI tests with CodeceptJS and Playwright
Speeding up UI tests with CodeceptJS and Playwright
Lessons learned from migrating 1000+ browser-functional tests from Chimp, WebdriverIO, and Saucelabs to CodeceptJS and Playwright
Canva Engineering
Mar 3, 2022
About Canva Engineering Blog
Latest Stories
Archive
About Medium
Terms
Privacy
Teams