Asana Interview Questions (2026-2027)
2 questions · 9 experiences · Reddit (4) · 1p3a (3) · LeetCode (2) · InterviewDB (2)
Browse by role
Top topics
11 entries
ASCII Printer: Design a Pluggable ASCII Art Renderer for Shapes and Text
Cats and Rabbits Game: Implement Turn-Based Predator-Prey Game Simulation
Asana Technical Phone Screen Tips
Asana Virtual Onsite Interview for SWE
Asana Fulltime SDE Tech Phone Screen Experience and Interview Overview
Asana Online Test Experience for SDE Position
Asana Staff Level Fulltime Software Engineer Onsite Interview Experience
Asana Phone Screen
Has anyone done a phone screen at Asana lately?
#973 K Closest Points to Origin
#238 Product of Array Except Self
ASCII Printer: Design a Pluggable ASCII Art Renderer for Shapes and Text
Question Details
Round 1 Coding / OOD
Problem
Design an ASCII art rendering system. Support rendering rectangles, triangles, and text banners to a 2D character canvas. Each shape is a separate class. The canvas can combine multiple shapes and print the result.
python
class Canvas:
def __init__(self, width: int, height: int, fill: str = " "):
...
def draw(self, shape: 'Shape', x: int, y: int) -> None:
...
def render(self) -> str:
...
class Rectangle:
def __init__(self, width: int, height: int, char: str = "*"):
def pixels(self) -> list[tuple[int,int]]: ...
class TextBanner:
def __init__(self, text: str):
def pixels(self) -> list[tuple[int,int,str]]: ...
Example
c = Canvas(10, 5)
c.draw(Rectangle(4, 3, "#"), x=1, y=1)
c.render()
# ----------
# | |
# | #### |
# | #### |
# | #### |
# ----------
Follow-ups
- How do you handle overlapping shapes — which one takes priority and why?
- How would you add a
Triangleshape that fills using Bresenham's line algorithm? - How would you support layering (z-index) so shapes can be explicitly ordered?
- How would you serialize the canvas state to a JSON file and restore it?
Topics
More from Asana
People also viewed
Related companies