顶级技术积累,独家面试资源,超靠谱团队
Senior @ Meta
墨尔本大学博士毕业。在CVPR、ECCV等顶级学术会议上以第一作者身份发表过十余篇论文。研究方向集中在可解释的人工智能和鲁棒模型架构的研究
Luke P
Senior @ 谷歌
前谷歌高级软件工程师,精通分布式系统、云计算和大规模数据处理。在顶级技术会议如KubeCon和Google Cloud Next上发表多篇技术报告。专注于提升系统的可扩展性和可靠性。
L7 @ Amazon
前Amazon工程老兵,擅长大规模互联网应用的开发与优化,专注于提升应用的性能和平台安全性。在分布式系统、微服务架构和实时数据处理领域有深厚的技术积累。
Canva 面经|Backend Engineer 面试辅助|澳洲面试辅助
求职辅助服务,是关于时间和品质的较量。咨询 Alpha 小助手,获取最专业的Tech求职辅助。
想要和我们的技术团队进行一次免费的沟通?
我们会直击要点,回答你的所有疑问,并介绍我们的服务。
还有顾虑?
我们可以提供免费的mock展示,我们的团队到底有多少水平,你说了算。
Canva 的 Backend Software Engineer 面试整体有五轮左右,这里讲讲其中最重要的四轮:System Design、AI Assisted Programming、Java Fluency 和 Technical Review。整体风格比较偏实际工程场景,不只是看能不能把题做出来,也比较关注 scalability、代码质量、AI coding workflow 和 production engineering。
System Design
这一轮是设计一个 Canva 的多人实时协作编辑系统。需要支持多个用户同时编辑同一个 design,包括添加、移动、删除文字、图片和其他元素,并且让其他协作者快速看到变化。后面主要追问 concurrent edits、WebSocket、event ordering、版本管理和冲突解决。如果某个热门 design 同时有大量用户编辑,还需要考虑如何做 partition、horizontal scaling,以及用户断线重连之后如何恢复最新状态。
AI Assisted Programming
这一轮要求使用 AI coding assistant 实现一个 image thumbnail service。输入图片和目标尺寸,生成对应大小的 thumbnail,同时需要正确处理不同图片格式、宽高比和异常输入。过程中重点考察怎么给 AI 拆任务、review AI 生成的代码,以及发现潜在问题。完成基本功能后继续讨论 image caching、并发处理、memory limit、timeout 和 retry,最后设计 unit test、integration test,以及如何验证 resize 后的图片结果是否正确。
Java Fluency
这一轮是实现一个简化版的 design version history。需要支持保存 design 的不同版本、根据 version ID 查询历史版本,以及恢复到指定版本。一开始可以用比较直接的数据结构实现,然后继续优化查询和存储效率。后面主要追问 object modeling、deep copy 和 immutable object,以及多个线程同时保存新版本时如何保证 version ID 和数据的一致性。还会讨论如果版本数量非常多,怎么避免内存无限增长。
Technical Review
这一轮是 review 一个 image upload and processing service 的 PR。用户上传图片后,服务会保存原图并生成不同尺寸的 thumbnail。需要从 senior engineer 的角度 review API、异常处理、并发、文件存储和代码结构。后面会进一步讨论大图片导致的 memory pressure、重复上传、异步 image processing、retry 和 idempotency,以及如何通过 metrics、feature flag、canary rollout 和 rollback 安全上线。
小小总结
总的来说,Canva 的面试比较实在,不会问你特别偏的理论,而是希望你能用工程师的角度来思考问题。写代码方面不需要特别花里胡哨,代码清晰、考虑全面就行;系统设计这块则是他们最看重的环节,毕竟招的是 Backend 工程师,能扛起服务架构才是关键。整个过程氛围比较轻松,不是那种高压 push 的面试风格。准备的时候多练练多线程和实际项目里的设计经验会比较有帮助。
