Design a Testable 2048 Game Engine
Company: Asana
Role: Software Engineer
Category: Software Engineering Fundamentals
Difficulty: medium
Interview Round: Technical Screen
Overview: Design a testable 2048 game engine with correct movement, merging, restart, and game-over behavior. Explore clean object boundaries, injected tile generation, immutable board exposure, multiple stored games, concurrency, and deterministic tests.