Applied for a mid-senior frontend role at Canva and just got through the OA + first coding round, sharing what I saw in case it helps others.
The OA. Canva sends a HackerRank-style online assessment first, usually two questions, about 90 minutes. I got one string manipulation problem (medium difficulty, think Leetcode medium range) and one that leaned toward graph traversal but was framed as a design-canvas-adjacent problem. The framing is cute but underneath it's just a standard BFS/DFS problem. Don't let the product-flavored wording throw you.
Time constraint felt reasonable. I finished with maybe 25 minutes to spare. The important thing is to get both passing, partial credit seems limited based on the scoring display.
The live coding round. After the OA, there was a 45-minute video call with one engineer. Language of your choice, they're flexible. I used JavaScript since I was applying for a frontend role and wanted to show idiomatic JS. They were fine with it.
They gave me one problem, harder than the OA questions. It had a clean brute force that you could write in about 10 minutes, and then they'd push you toward optimization. The whole conversation was about the optimization path: what's the bottleneck, what data structure fixes it, what's the time complexity of your new approach.
What they weren't testing. For a frontend role specifically, they didn't ask DOM or browser questions in the coding round. No "how does the event loop work" style questions here. Those came up in a separate round (more architectural).
Difficulty calibration. I'd put the OA at Leetcode medium. The live coding round at medium-hard. They're not testing Leetcode hard grinding culture the way some FAANG shops do. Which, honestly, felt more proportionate to the actual work.
Three rounds total after the OA: coding, system design, and a behavioral/hiring manager combo. Will post on the others when I'm through them.