Published inCanva Engineering BlogAnnouncing our new engineering blogCanva engineering blog is moving to its new home.May 4, 2023May 4, 2023
Published inCanva Engineering BlogA Journey through Color Space with FFmpegFor those who want to understand color spaces, transform videos from one color space to another, or read how I almost went crazy working…Apr 17, 20231Apr 17, 20231
Published inCanva Engineering BlogDiscovering Headroll (CVE-2023–0704) in ChromiumDiscovery of Headless Chromium security vulnerability, how it works, and mitigations that should be applied to similar configurationsApr 5, 2023Apr 5, 2023
Published inCanva Engineering BlogUnderstanding a Diverse User Base with Frequency Segmentation at ScaleHow we developed a bespoke frequency-recency segmentation to understand our users’ diverse usage patternsMar 16, 20231Mar 16, 20231
Published inCanva Engineering BlogDeep Learning for Infinite (Multi-Lingual) KeywordsHow we used a CLIP-inspired model to suggest keywords for template labeling in multiple languagesJan 24, 20232Jan 24, 20232
Published inCanva Engineering BlogFrom Zero to 50 Million Uploads per Day: Scaling Media at CanvaThe evolution of media persistence during hypergrowth at CanvaNov 29, 20223Nov 29, 20223
Published inCanva Engineering BlogSearch Pipeline: Part IIMore on how we are rebuilding Canva’s search stack and pipelineNov 17, 20221Nov 17, 20221
Published inCanva Engineering BlogSearch Pipeline: Part IHow we are rebuilding Canva’s search stack and pipelineNov 2, 2022Nov 2, 2022
Published inCanva Engineering BlogSimple, Fast, and Scalable Reverse Image Search Using Perceptual Hashes and DynamoDBHow we built our first iteration of content matching at CanvaOct 16, 20222Oct 16, 20222
Published inCanva Engineering BlogHow We Used Data to Optimize Our Quality Assistance ModelFrom firefighting chaos to problem solving zenAug 29, 2022Aug 29, 2022