Overall, interviewers are friendly. Their experience can very from senior to intermediate, and could have different focus thinking. You just have to read the vibe and align with what their focus is. I can see not all of them have strong experience as interviewers, so this is the time to test your luck as well, which you need that luck to be successful in any interview anyway.
Two rounds of screening - external and internal recruiter, just standard to make sure you know what you are talking about.
Pre-tech screen round - AI coding challenge
- Implement a text-image rendering system. The task was to take input text, a specified font URL, and output an image of the text in that font format. No brainer for me since my current job utilises AI assistants every day. For people with no experience, you probably need to pay some money for a pro plan of your preferred vendor and make sure you practice it well. At least know how to think AI is your junior and you are giving clear instructions for it to implement something not way off the track.
The below are all done in one session continuously, with different interviewers.
Behaviour / leadership
- Introduction: Tell me a time you had to make fast decisions without data supporting it. Tell me when you made something from good to great. Tell me a time you had to work with different business stack holders and how you interacted with them.
Programming Language fluency test
- Implement a cache. Technically, create a hash map from the basic Java without the JAVA inbuilt hash map utility. Only Canva developers can confirm if this is really related to their day-to-day work. It is practical, but being a senior for more than 10 years, my memory is rusty on this. But I could also see this is much more relevant than a hard LeetCode question that has nothing to do with your job.
- I dropped the ball here. I needed a few hints from the interviewer to refresh my memory of how to create a hash map from the ground up. Therefore, it was time-consuming, and there was no time to actually finish writing all the tests for the inner class. My IDE was having issues running the tests to prove my tests were perfect. Turns out all I needed was to restart it. I was puzzled why the tests didn't work and tested them after all the interview had finished.
Pair review
- Review this PR and tell me what you can spot with an implementation and tests. Later, an improved version of it. Now tell me what is wrong there. What is wrong if someone posts a quick message about a release plan? What would you do for a similar release plan in a safer way?
System design
- Design an eCommerce site. The interview is more focused on the initial technical requirements and pre-decided details in the product side rather than the system design side. For example, the details of what parameters you will have on the API endpoints, which is a bit different from the normal system design interview where you can show off what trade-offs are with a design diagram and try to skip this less juicy time as a senior. Only the last 15~20 mins are focused on the actual system diagram. This may very well depend on the interviewer, but it does align with the Canva pillar - product thinking.
Feed back loop of the result
Took about two weeks after chasing it up a few times, then received an email about not moving forward, with a generic message about:
1. Wasn’t a match this time, that doesn’t mean there won’t be another role that's even better suited to your skill set.
2. Give opportunity to chat again on the phone re how the interview feedback.
I can't validate the above feedback cycle is true or just being polite, since I am unable to get a response for a week now trying to book a time for that phone call.
Good luck with your interview and hope this is useful.