Senior Backend Software Engineer - Java - Server Platform (Remote across ANZ)
Canva
- Sydney, NSW
- Permanent
- Full-time
- 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
- 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.
- 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