Senior Software Engineer - Core Platforms & Libraries
Amazingly Simple Graphic Design Software
- As an individual contributor, develop awesome Gateway features and functionality to support the Canva product suite
- Develop internal tools and services used by other software engineers to maximize productivity and eliminate blockers
- Deep investigation into production incidents followed up 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
- Propose new approaches and solutions to ensure we future-proof Canva’s distributed cloud infrastructure as we scale
- Developing solutions you've designed from the ground up through to deployment into production
- Identifying and addressing performance bottlenecks within the application and broader infrastructure
- 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 11)
- Familiar with asynchronous or reactive programming techniques and associated patterns; At our scale, writing blocking code is 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.
- Competitive salary, plus equity options
- Flexible daily working hours, we value work-life balance
- In-house chefs that cook delicious breakfast and lunch for us each day
- Onsite Gym; Yoga Benefits
- Generous parental (including secondary) leave policy
- Pet-friendly offices
- Sponsored social clubs and team events
- Relocation budget for interstate or overseas individuals that legally qualify for visa sponsorship
About us At Canva, we create tools that empower the world to design. Our platform combines a drag-and-drop design tool with a stock library of over 1 million photographs, illustrations and imagery. You can also choose from hundreds of professional templates to create social media graphics, presentations, flyers, posters, invitations and so much more. Our mission is to make design simple for everyone. Driven by a team of talented thinkers, an amazing culture and remarkable growth trajectory – we’re out to change the world, one design at a time.