Joscha Feth

Frontend Engineer

Joscha Feth

Frontend Engineer

  • Careers
  • Hear from Joscha, Frontend Engineer

Hear from Joscha, Frontend Engineer

What does a Frontend Developer do at Canva?

The latest version of Canva is built with a fresh Frontend stack, which is based around TypeScript, React, MobX, PostCSS, RxJS and webpack to name a few. Most teams are now working with that stack for their day-to-day development. On top of that, you’ll be doing a healthy amount of unit testing with Jest, integration tests via WebdriverIO and visual regression testing based on Percy.

We use Github for storing our code and Buildkite to run our builds. Our pull request process and our bot to kick off builds and tasks are closely integrated, which means you should get started in no time.

The basis of your work will usually be a product feature request, which gets fleshed out by a designer in Sketch and then transformed by you into frontend code. Our UI specifications are fairly well integrated with our frontend code, so most of the time the nitty gritty of reading color values and measurements is abstracted away by our shared UI modules which define colors, metrics, font stacks, grid baselines and a whole set of ready-to-use custom-made UI components.

These components are currently owned jointly by the whole engineering organisation and decomposed neatly in Storybook, which not only encourages reuse but also collaboration. New frontend developers often tell us that the whole setup is blissful to work with. If there’s any part of it that you don’t enjoy though, we’re always open to suggestions for improvements.

Why is Canva a good place to be a Frontend Developer?

Maybe it would be easiest to share the reason why I joined, to try to convince you 🙂 Most of the time you have to choose between location and product, e.g. there might be a company producing a great product but they are located somewhere undesirable. Or on the other hand they might be located in a great spot, but the product is so-so. Often, based on your personal preference, you have to make a trade-off. Canva is one of the few places where you can have both. Pinky Promise.resolve().

Sydney is the hub of all sunshine (I should know, having lived in a city where what they call summer would be called winter here) and happiness (sorry Melbourne people, this thing is still on ;-)). Canva’s office is in the heart of Surry Hills, close to the CBD, in our own building, and soon we’ll even have a rooftop terrace. We’re surrounded by great restaurants and nightlife, but it’s also just plain close to Central station, which guarantees an easy commute.

On top of that, we’re building a product which you couldn’t be happier with as a frontend developer – beauty mixed with bleeding edge browser editing capabilities, and a feature set that has something for everyone –  from UI-heavy whizz devs to more mathematically inclined developers that can’t say Operational Transform often enough. Paired with that is a loving user base that is always happy to rip the latest feature out of your hands and tell you all about it. Hopefully our continuous user testing and experiments framework means that by the time your feature lands in the hands of users, they’re going to absolutely love it.

Canva as a company is a great place to work. It’s full of talented and interesting people, all devoted to creating a beautiful and easy-to-use product and sharing knowledge in our fortnightly Frontend Forums. Even though we are growing quite rapidly, there’s a lot of space for you to grow, not only your skills but also your responsibility.

What skills or experience are you looking for when hiring Frontend Developers at Canva?

I wish I could tell you a single skill to learn. There are definitely things which carry a bit more weight than others, so without making this a de-facto guarantee of being hired, let me try and answer this from a personal perspective as an interviewer:

Whilst we use a fair number of tools (see the list above) it’s not expected that you are a pro user or even familiar with any of them. If you can solve challenging Frontend problems in vanilla JS, you’ll be just as good a candidate, so focus on the basics rather than the toolchain.

In my experience, the average Canvanaut tends to give more thought to structure and cleanliness when engineering than at other companies I’ve worked for. We also value being able to weigh the pros and cons of a solution, and being able to defend your choice (given it is sane). Our interview process is engineered around allowing you to shine, not making you fail. So shine, we want you to!

Only a few weeks ago a grad student blew me away in a phone screen. They not only solved the whole screen in a third of the allotted time, but also allowed me to enjoy the experience by solving it in a way that I hadn’t seen before in the 324324325 previous interviews I’d been part of. I had to pull out a second phone screen task and improvise on the fly to fill the rest of the interview time so I didn’t look unprepared! I am not saying this because I need you to rock our challenges in half the time, but to let you know to follow the way you engineer things – be authentic and work in a structured way, mindful of performance, maintainability and the shortcuts you take.

Whilst you’re working, be vocal about your choices and the reasons you’ve made them, so we can follow your thought. As long as you’re able to reason about your decisions, it doesn’t matter much whether you solved the problem in the standard way or knew how to use toolchain xyz.