Asana Software Engineer Phone Screen Questions
4+ questions from real Asana Software Engineer Phone Screen rounds, reported by candidates who interviewed there.
What does the Asana Phone Screen round test?
The Asana phone screen typically lasts 45-60 minutes and evaluates core Software Engineer fundamentals. Candidates should expect 1-2 algorithmic problems, basic system design discussion at senior levels, and questions about relevant experience. The goal is to confirm technical competence before bringing candidates onsite.
Top Topics in This Round
Asana Software Engineer Phone Screen Questions
Asana Fulltime SDE Tech Phone Screen Experience and Interview Overview
First Round of Challenges: Off Camera Zoom Questions 1/2: * You are shown two code snippets on the coding panel without writing any code, and asked what they do. Also, the time and space complexity of
Asana Phone Screen
This will be my first ever internship phone screen (I got perfect score on codesignal) does anyone have any info on how difficult the phone screen is? Also does this mean I passed the resume screen si
Was just invited for one. Any pointers? And before anyone asks, the job posting is closed now, unfortunately.
## Round 1 - Coding / OOD ## Problem Simulate a turn-based grid game where cats try to catch rabbits. Each turn: rabbits move randomly to an adjacent cell; cats move one step toward the nearest rabbit. If a cat and rabbit occupy the same cell, the rabbit is caught. Simulate until all rabbits are caught or a max turn limit is reached. ```python class Animal: def __init__(self, animal_id: str, x: int, y: int): ... def move(self, dx: int, dy: int): ... class Cat(Animal): def choose_move(self, rabbits: list['Rabbit']) -> tuple[int,int]: ... class Rabbit(Animal): def choose_move(self) -> tuple[int,int]: ... class Game: def __init__(self, grid_size: int, cats: list[Cat], rabbits: list[Rabbit]): ... def step(self) -> list[str]: # returns ids of caught rabbits this turn ... def run(self, max_turns: int) -> dict: # returns {"turns": int, "caught": list[str], "escaped": list[str]} ... ``` ## Example ``` cats = [Cat("C1", 0, 0)] rabbits = [Rabbit("R1", 4, 4)] game = Game(grid_size=5, cats=cats, rabbits=rabbits) game.run(max_turns=20) # -> {"turns": 8, "caught": ["R1"], "escaped": []} ``` ## Follow-ups 1. How does your cat movement strategy change if there are multiple rabbits — does the cat chase the nearest or apply some heuristic? 2. How do you prevent two cats from targeting the same rabbit inefficiently? 3. What happens on a toroidal grid (edges wrap around)? 4. How would you add a line-of-sight constraint so cats can only move toward rabbits they can "see"?
See All 4 Questions from This Round
Full question text, answer context, and frequency data for subscribers.
Get Access