Senior Backend Software Engineer - Server Platform (Open Remote Across ANZ)
Posted on Tuesday, April 11, 2023
Join the team redefining how the world experiences design.
Hey, g'day, mabuhay, kia ora,你好, hallo, vítejte!
Thanks for stopping by. We know job hunting can be a little time consuming and you're probably keen to find out what's on offer, so we'll get straight to the point.
Where and how you can work
Our flagship campus is in Sydney. We also have a campus in Melbourne and co-working spaces in Brisbane, Perth and Adelaide. But you have choice in where and how you work. That means if you want to do your thing in the office (if you're near one), at home or a bit of both, it's up to you.
What you’d be doing in this role
As Canva scales change continues to be part of our DNA. But we like to think that's all part of the fun. So this will give you the flavour of the type of things you'll be working on when you start, but this will likely evolve.
At the moment, this role is focused on:
- As an individual contributor, you will 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
You're probably a match if
- 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!
- 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 2, 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 Server Platform and broader infrastructure teams aim to provide the best tools possible to the application engineers to ensure that Canva stays available at all times.
About the team
The Server platform's mission is to provide the tools and libraries necessary to scale the reliability of Canva’s backend services. The Server Platform team is responsible for client & server components that all our backend services use to communicate with each other, which directly affects the performance and reliability of those services. On top of the communication layer, the team is responsible for code generation, automatic compatibility checks, and data classification enforcement. We are currently facing exciting challenges to uplift platform capabilities to prepare Canva for 1 billion monthly active users in 2026.
About the Role
This role sits within the Server Platform Team. As a versatile senior software engineer, you will be responsible for shaping the vision of service communication on our platform. We are part of the API Platform, and our mission is to empower engineers to build efficient, reliable, and secure traffic flow for billions of users.
What's in it for you?
Achieving our crazy big goals motivates us to work hard - and we do - but you'll experience lots of moments of magic, connectivity and fun woven throughout life at Canva, too. We also offer a stack of benefits to set you up for every success in and outside of work.
Here's a taste of what's on offer:
• Equity packages - we want our success to be yours too
• 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
Check out lifeatcanva.com for more info.
Other stuff to know
We make hiring decisions based on your experience, skills and passion, as well as how you can enhance Canva and our culture. When you apply, please tell us the pronouns you use and any reasonable adjustments you may need during the interview process.
Please note that interviews are conducted virtually.
See more open positions at Canva
Something looks off?