Oct 13, 2021

Software Engineer - Core Platforms & Libraries (Java)

  • Canva
  • Sydney NSW, Australia

Job Description

We’re constantly working towards making Canva the best place to work, for everyone. We believe deeply that bringing together diversity of thoughts, perspectives and expression is key for building the best product for our equally diverse community all around the world. We celebrate uniqueness and whatever makes you, you and encourage everyone who wants to help us transform the way the world designs, to join us on this journey. We value all different types of experiences. If you don’t think you quite meet all of the qualifications, we’d still love to hear from you.  

About Us
At Canva, our mission is to democratise design and empower creativity for anyone and everyone, on every platform. Inspired by a team of talented thinkers, an amazing culture and a remarkable growth trajectory – we’re out to change the world, one design at a time. 

Since launch in August 2013, we have grown exponentially, amassing over 60 million monthly active users across 190 different countries who have created more than 6 Billion designs. We are one of the world’s fastest-growing technology companies and we have only achieved about 1% of what we want to do.

This role sits within the Gateway Team, which is responsible for the front line of our microservices, as well as the journey a request takes while travelling from one service to another. Gateway’s work is based on two cornerstones: Reliability and Velocity. We want to ensure that every request that hits Canva goes through the Gateway components, at ludicrous speeds, and that the developers who work on the platform can be efficient, productive, and most importantly, happy.

Role Responsibilities

  • As an individual contributor, design and implement tools and libraries to improve the reliability of the canva microservices (for instance, adding a new long-awaited feature in our circuit breaker library)
  • Conduct and organise reliability experiments to identify possible scenarios in which failures might occur and verifying the reliability measures
  • Design and build services and tooling that help ensure each of Canva’s microservices are working optimally and are resilient to failures
  • Have widespread impact across the organisation by facilitating and spearheading cross-team initiatives that raise the bar for reliability, velocity and security
  • 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 new 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

Required Skills & Experience

  • Five-plus (5+) years of commercial experience developing complex, distributed web applications on the JVM; experience writing Java (experience with other JVM languages such as Scala, Kotlin, etc is a big plus - however, we primarily use Java 13)
  • 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); CDNs, DNS. We're hosted on AWS and leverage the tools they provide as much as possible
  • Disciplined coding practices, experience with code reviews and pull requests, and a creative and conceptual problem-solving approach as opposed to framework or library-focused; We strive to build fast and lean solutions; not library/framework-heavy patchwork
  • Strong communication and team collaboration skills, both written and verbal. A Canva engineer strives to understand the exact problem before jumping into writing code - look before you leap!

Nice to have; Not required!

  • Experience with RPC Frameworks, Finagle, Thrift or gRPC will be a huge plus, but not required; We strive to make sure that the communication layer is not a bottleneck, and simplifies the life of the product engineers as much as possible
  • Knowledge of networking protocols such as TCP, HTTP 1/2, QUIC, protobuf, etc. would be a big plus; The life of a request doesn't start inside the backend web server, but rather in the browser of a user
  • An understanding of resiliency techniques and patterns - load balancing, throttling, back pressure, circuit breaking, etc; For Canva, reliability is a feature, and the Gateway and broader infrastructure teams aim to provide the best tools possible to the application engineers to ensure that Canva stays available at all times. 

Benefits

  • Competitive salary, plus stock options via our ESOP plan
  • Flexible daily working hours, we value work-life balance
  • Breakfast and lunch prepared by our wonderful Vibe team
  • Onsite-Gym and Yoga Membership
  • End-of-Trip Facilities: Bicycle parking and showers
  • Generous parental (including secondary) leave policy
  • Pet-friendly offices
  • Internal Coaches and an Employee Wellness Program
  • Sponsored social clubs, team events, and celebrations
  • This role is open to remote applicants based in Australia
The Canva workspace is set up for you to do your best work and have a great time doing so, with breakout areas, little nooks, and quiet places to retreat.

Want to experience Canva for yourself?
Check out what life is like at Canva on Instagram.
Check out what our users are saying about us on Twitter.
Get to know our Chef, Chris
Meet our CEO, Melanie
Finally, give Canva a go!

If you're seeking professional growth and enjoy working on large, distributed, cloud-based applications that delight our millions of individual and business users alike - then apply now to be considered for the position!

We will not accept or review any CVs from external recruitment agencies.

We make hiring decisions based on your experience, skills and passion. If you’re keen to apply and need reasonable adjustments or would like to note which pronouns you use at any point in the application or interview process, please let us know.