October 2, 2025
Canva Australia Backend Engineer Interview Experience
Towards the end of 2023, after what felt like an endless marathon of job applications and “we’ll be in touch” emails, I finally landed an…

By Freeze Francis
7 min read
Interview Experience
Towards the end of 2023, after what felt like an endless marathon of job applications and "we'll be in touch" emails, I finally landed an interview with Canva Australia, which was, surprisingly, a great experience, and now I work in their Sydney office.
(Non-Medium members can READ the full article for FREE: here)
Towards the end of 2023, I was actively searching for the next big career move and a place to settle down for the long term. For that reason, I was on an interview spree with several companies, though most didn't work out as neither the compensation nor the position met my expectations. Since my sister was living in Australia, I decided to give the country a shot and applied for a position at Canva Sydney through LinkedIn. To my surprise, my application went through, and I immediately received an email from the recruiter asking for a call.
Recruiter Screening (30 minutes)
My research into Canva's interview process revealed a common and slightly intimidating practice: a recruiter-led screening that often includes technical questions, specifically about Java. This forced me to brush up on my Java skills, as I've been primarily working with other languages.
I was fortunate enough to get a very friendly recruiter. She didn't ask a single technical question and instead focused entirely on my experience and motivation for joining Canva, Australia. She thoroughly explained the next steps, the hiring process, and the compensation packages for different roles. I will have a technical screening round scheduled after the call, and upon clearing it, I will move straight into the final stage: a comprehensive interview loop consisting of four rounds.
Technical Screening (60 minutes)
The technical interview began simply enough: implement an interface with basic create, get, and list functions using Java collections like a HashMap to mimic a database.
But as I coded, the interviewer steadily increased the complexity, adding more functions and constraints to see how I would adapt. The final addition was the toughest. It was a constraint that would've required a major refactor of everything I had built so far. I suspected this was a deliberate challenge to see how I traded an ideal architecture for practicality. I decided to tackle it in a way that avoided a complete overhaul, opting for a minor performance hit in exchange for keeping the core structure intact.
The interviewer appeared satisfied with my solution, and I walked out of that round feeling like I had hit all the right notes.
I got the good news from the recruiter: I was moving on to the final interview loop. This was a series of four interviews scheduled back-to-back, with no elimination rounds in between. Given how packed my work schedule was, I knew a four-hour block would be impossible. So, I asked the recruiting team if we could split the interviews across two days. They were more than happy to make it work, which was a huge relief.
Technical Communication and Review (45 minutes)
The interview got off to a rocky start when the interviewer was ten minutes late. I wasn't sure what to expect from this round, but it felt like a code review. He immediately mentioned a Google Docs link that I was supposed to have received, but I couldn't find it in my inbox. The situation became even messier when he pasted some TypeScript code — a language I wasn't expecting, as all interviews were supposed to be in Java.
Reading code without syntax highlighting in a Google Doc was incredibly difficult. The interviewer took some time to explain the code and even shared a screenshot of highlighted code from his IDE to help. This unplanned approach made the whole process feel disorganised. Despite the challenges, I talked and thought out loud, sharing my understanding and pointing out issues with thread safety, performance, and syntax. Later, he showed an upgraded version of the code, which still had its own problems. I believe the biggest miss was the lack of context; without the requirements for the code, I could only focus on technical flaws rather than potential functional bugs.
System Design & Architecture (45 minutes)
The next interview was a system design round, and it was a bit of a challenge from the start. The interviewer explained the requirements verbally, and I had trouble keeping up with the details. I asked if she could put it in writing, which she did. The problem was to design a Canva subscription payment system, but the discussion stayed at a high level, focusing on the various components and endpoints needed to support payment options.
No whiteboard was provided, and I was given a Google Doc to outline components and APIs, which made it extremely difficult to visualise and organise my thoughts. Since everything was verbal and in written form, I had to visualise and process all the information in my head. I didn't enjoy this round much, and I felt the interviewer wasn't able to fully probe my potential, and the whole experience seemed less structured than it could have been. Although I didn't have high hopes, I did manage to work through the constraints and put up a decent system design proposal.
💡 Want to ace system design interviews? I've written a practical guide on how to overcome impostor syndrome, bridge the knowledge gap, and think like a true architect:
How I Finally Cracked the System Design Interview Interview Preparation: A personal journey into mastering system design
Programming Language Fluency (45 minutes)
This was one of the most straightforward and well-run interviews of the day. The interviewer, who seemed very experienced, asked me to build a simple in-memory cache using only Java primitives.
I started by implementing a basic in-memory key-value cache, which at its core is a HashMap based on arrays. As I worked through the problem statement, the interviewer bumped up the complexity, asking me to handle hash collisions. To wrap things up, he also had me write tests to ensure the cache was working correctly. I really enjoyed this round and felt it was a great way to showcase my programming skills.
💡 Bonus: Want to know how I actually prepare for these coding rounds? Check out my preparation strategy here:
How I Actually Prepare for Coding Interviews Beyond the LeetCode grind: My personal framework for mastering data structures & algorithms, optimising problem…
Strategy, Communication & Leadership (45 minutes)
This interview, conducted by an engineering manager, was a pleasant experience. The interviewer was very friendly and covered standard behavioural questions.
The questions mainly revolved around scenarios such as:
- How did I handle conflict with my manager?
- A time I experienced a major failure and how I dealt with it.
- A significant architectural change I delivered.
In each case, the discussion went beyond the behavioural aspect, with the interviewer delving into the technical details of the situations I described. Towards the end, I was given the chance to ask questions. I was completely satisfied with my performance in this round.
💡 Want to ace behavioural interviews? I've written a comprehensive guide on exactly how to prepare for behavioural questions and deliver top-tier answers:
The "Soft" Round is Harder Than You Think: How I Finally Cracked the Behavioural Interview Don't let the 'soft' round cost you the offer. A practical guide for software engineers to master behavioural…
Canva lives up to its reputation for its timely response; once the interview loop was done, I knew I'd hear back within their 48-hour policy. Right on schedule, I received the positive email saying I was moving forward! A dedicated recruiter from the Trust and Safety organisation then reached out to set up a team matching round.
Team Matching (60 minutes)
This interview was done by the hiring manager and his engineering director. The meeting started with a detailed introduction of myself, followed by them explaining the team's responsibilities and goals. The rest of the time was mainly dedicated to them answering the questions I had prepared.
I designed my questions to move beyond the job description and truly understand the team's heart and function. My primary goal was to outline the team's mission, structure, and impact at Canva. I focused on strategic questions covering their current challenges, future projects, key KPIs, and the required expertise to ensure I was the right fit. I also made sure to ask about the practicalities of the role, such as the on-call duties and how the first 90 days would be structured.
Towards the end, they shifted gears and asked me a few specific questions about my tech stack experience, my familiarity with AWS, and an example of how I led a recent cross-team initiative.
Offer
The recruiter came back immediately to check if I liked the team. I mentioned I did, and on the same call, we had discussions about offer details. I asked for a bit more time to think about the offer, and the recruiter also mentioned he will work with the hiring manager.
There were several back-and-forth calls with the recruiter on the compensation aspects, mainly because, considering Sydney's cost of living, the package wasn't great in terms of the final savings I would end up with each month. Also, it was the end-of-year season, which meant I had to forfeit my yearly bonus awarded by my current employer. So I was at a net loss with the initial offer.
After some diligent work by the recruiter and the hiring manager, they came back with an increased, competitive offer that was close to my expectations. And that's when I knew this was it, and I finally accepted the offer, and just like that, a thrilling new chapter of my life in Australia began! 🇦🇺
If you are evaluating an offer to move to Australia (or any country, really), I wrote a detailed framework for comparing offers across borders. It is not about gross salary. It is about what actually hits your bank account each month:
The Math I Do Before Accepting an Overseas Job Offer A savings-first framework I built after moving from India to Thailand to Australia
Thanks for reading! If this story resonated with you, I'd appreciate a few claps 👏 (did you know you can clap up to 50 times?). It really helps more people discover this post.
If my work provided some value today, you can support me here 🤝.
To view my full portfolio or connect with me on other platforms, visit:
Freeze Francis | Instagram, Facebook | Linktree Senior Software Engineer @ Canva | Australia
For anyone interested, check out all my interview experiences here:
Cracking the Tech Interview: My Personal Experiences at 10+ Companies (Google, Amazon & More) A complete index of my detailed software engineer interview experiences