Senior Backend Software Engineer

Logo of Canva

Canva

๐Ÿ“Remote - Australia

Job highlights

Summary

Join Canva's RPC team as a Senior Software Engineer and help redefine how the world experiences design. You will design and implement tools and libraries to improve the reliability of Canva's microservices, conduct reliability experiments, and build services ensuring optimal performance and resilience. This role involves investigating production incidents, researching and developing features, addressing performance bottlenecks, and proposing innovative solutions for Canva's distributed cloud infrastructure. Canva offers flexible work arrangements, allowing you to work from the office, home, or a combination of both. The company is located in multiple cities across Australia, with a flagship campus in Sydney.

Requirements

  • Five-plus (5+) years of commercial experience developing sophisticated distributed web applications on the JVM; experience writing Java (experience with other JVM languages such as Scala, Kotlin, etc is a huge plus - however, we primarily use Java 17)
  • Familiar with asynchronous or reactive programming techniques and associated patterns; At our scale, writing blocking code is often not an option
  • Comfortable with computer science and engineering fundamentals: concurrency, data structures, and distributed systems
  • Experience working in large distributed cloud environments (ideally AWS)
  • Disciplined coding practices, experience with code reviews and pull requests, and a creative and conceptual problem-solving approach as opposed to a framework or library-focused; We strive to build fast and lean solutions; not library/framework-heavy patchwork
  • Strong communication and teamwork skills, both written and verbal. A Canva engineer strives to understand the exact problem before jumping into writing code - look before you leap!

Responsibilities

  • Design and implement tools and libraries to improve the reliability of the Canva microservices
  • Conduct and organize reliability experiments to identify possible scenarios in which failures might occur and verify the reliability measures
  • Design and build services and tooling that help ensures each of Canvaโ€™s microservices are working optimally and are resilient to failures
  • Have a widespread impact across the organization by facilitating and orchestrating cross-team initiatives that set a higher standard for reliability, velocity and security
  • A deep investigation into production incidents followed up by applying the learning to code
  • Researching, developing, and justifying the best choices in the form of design docs for features that will shape the future of Canva
  • Identifying and addressing performance bottlenecks within the application and broader infrastructure
  • Propose innovative approaches and solutions to ensure we future-proof Canvaโ€™s distributed cloud infrastructure as we scale. Participating in design meetings, hiring interviews, and code reviews

Preferred Qualifications

  • Experience with RPC Frameworks, Finagle, Thrift or gRPC
  • Knowledge of networking protocols such as TCP, HTTP 2 , etc
  • An understanding of resiliency techniques and patterns - load balancing, throttling, back pressure, deadline propagation, circuit breaking, etc

Benefits

  • Equity packages
  • Inclusive parental leave policy that supports all parents & carers
  • An annual Vibe & Thrive allowance to support your wellbeing, social connection, office setup & more
  • Flexible leave options that empower you to be a force for good, take time to recharge and supports you personally

Share this job:

Disclaimer: Please check that the job is real before you apply. Applying might take you to another website that we don't own. Please be aware that any actions taken during the application process are solely your responsibility, and we bear no responsibility for any outcomes.