Engineering Interview Guide

We’re excited to have you come in and interview with us at Asana!

While onsite, you’ll meet your future teammates, learn more about Asana and our culture, and be given the opportunity to showcase the best of your abilities. We want you to feel comfortable throughout our interview process to give you the best chance of showing your strengths. To help with that, we’ve written this guide to give you expectations about the structure and content of our interviews.

Please let us know if you have any questions. Also, please let us know if you have suggestions about how to interview you: In what areas do you excel? Are there any additional resources or accommodations you might need?

Types of Questions

We design our interview questions to see how engineers work through technical problems they don’t know the answer to yet.

Coding

We’ll ask you to solve some coding questions in a language and text editor of your choice. Feel free to bring your own laptop, or we’ll be happy to provide one. Notably, we ask candidates not to compile or run their code during this exercise, and not to refer to online resources. Our goal is not to simulate day-to-day software development — where we read docs and write lots of tests! — but rather to see how you reason about your code and input cases. For that same reason, we won’t ding you for superficial syntax errors or misremembered function names. After leaving you to work through the questions on your own, we’ll sit down together and talk through your solutions (including any ideas you didn’t have time to commit to code).

Algorithms and Data Structures

Most engineering interviews contain some algorithmic questions. At Asana, we particularly love questions that involve the use of data structures. Hashes, sets, heaps, binary trees, linked lists, all the usual suspects. Using the right data structure for the right job is a skill we consider fundamental because it is key to efficiency. Things to think about: Do you know the different types of operations for which a data structure is suited? What kind of run-time complexity do the operations have? We don’t expect you to know how to implement every data structure by heart, but we do hope to see that you could work it out in cooperation with a helpful partner. We also value thoroughness and being able to catch your own mistakes, even in the edge cases.

Modeling and Design

When it comes to modeling and design, we value clarity with a bias towards simplicity; we expect Asana engineers to be comfortable designing a technical solution to a real-world problem (often based on a problem that we’ve worked on in the course of building Asana). Break the problem down into smaller components. You might prefer an object-oriented design, or a functional design, or perhaps even take a declarative approach; the key is being able to articulate not only a solution, but also why you made the choices you did. Being able to identify trade-offs explicitly and why you are making them is the sign of mindful design.

What We’re Looking For

This isn’t an exhaustive list, but it’s some of the qualities we look for that we think are especially valued at Asana (while not unique to us).

Technical Design: Simple and Robust

  • Did you consider scalability and robustness when designing systems?
  • When faced with complexity, did you question its necessity?
  • Did you recognize when you were making tradeoffs, and consider those tradeoffs appropriately?

Programming: Abstractions, Code, and Algorithms

  • Related Eng Value: Ship fast sustainably
  • Was your code clean and correct?
  • Did you select data structures and algorithms appropriate to the problems you were solving?
  • Did you create abstractions that helped break down the problem clearly?

Communication: Articulate your mental model

  • Related Eng Value: Articulate your mental model
  • Did you make it clear what problems you were solving?
  • Did you discuss ideas at the right level of detail?
  • Were you able to clearly discuss trade-offs of your decisions?

Collaboration: Would be a good teammate

  • Related Eng Value: Teach with compassion
  • Did you make sure that your interviewer was following along and adjust course if necessary?
  • Do you have empathy for your past co-workers and introspection about your past work?
  • Did you take questions, comments, and concerns in the interview seriously?

Learning: Absorbs information and avoids repeating mistakes

  • Related Eng Value: Learn with curiosity
  • Did you ask good questions and learn quickly with guidance if you had missing knowledge?
  • When you received information, did you apply it well?
  • Did you avoid repeating mistakes?
  • Did you demonstrate curiosity around things you were unfamiliar with?
  • Did you show expertise in the systems you have previously worked with?

Autonomy: Prioritizes well and anticipates problems

  • Related Eng Value: Fix problems even when they’re not yours
  • Did you display good judgment about what was most important to focus on?
  • Did you understand the goals of the problem?
  • Did you anticipate problems with your solutions and evaluate other options?
  • Did you identify holes in your own knowledge and work around them?

How To Prepare

Below are just a few ways we’ve heard on how successful candidates have prepared for their interviews.

  • Read through technical interview prep resources

    HackerRank and Interviewing.io are good places to start. We’re also fans of InterviewCake’s Coding Interview Tips and CodeFights.

  • Reflect on your experience and interesting technical problems you’ve worked on

    We want to hear your story and witness your expertise. The more you tell us about your past work, the more we can adapt our interview to suit your strengths.

  • Bring questions for your interviewers

    As important as it is for us to evaluate if you’re a good fit for Asana, we want you to be able to make the same call. What matters to you in a working environment? What are you looking for in your future projects and teammates?

Share Your Feedback with Us

These are the ways we approach our interview process, and we’d also love to hear about your experience so far and what we can do to better accommodate your onsite visit! We’d encourage you to share your experience with us or speak with anyone on our team before or after your interviews.

Follow-up note regarding this Guide: We’re also still in the early stages of creating this guide and are always seeking ways to make it better. Let us know what you think and what else you would’ve liked to see on here.

Log in

or

Forgot password?

Sign up

Please use your work email address, so we can connect you with your team in Asana.

Sign up

Please use your work email address, so we can connect you with your team in Asana.

Start your free trial

Please use your work email address so we can connect you with your team in Asana.

Start your free trial

Please use your work email address so we can connect you with your team in Asana.

Buy Now

Please use your work email address, so we can connect you with your team in Asana.

Enter a work email address

This email looks like a personal email address. If you want to be connected with your team, please use your work email address.

Enter a work email address

Why are we asking? Continue with my email

Oops, we couldn’t sign you up!

We tried, but there was a problem creating your account. Please close this window and try again!

Hey there, we’ve already met!

Add link to

Error: Please select a workspace before adding link


Sorry, we don’t support this browser

Asana doesn’t work with the internet browser you are currently using. Please sign up using one of these supported browsers instead.


Please login or sign up for Asana to calculate your price

or

Forgot password?