← Liftoff Interview Insights

Liftoff·Software Engineer·Take-home Assignment·Intermediate

Intermediate
May 2026

Summary

Take-home assignment for a Software Engineer role at Liftoff. They asked you to build a working Tetris implementation from scratch, no GUI required, just something that runs in the terminal and covers all the real mechanics.

Questions Asked (1)

Q1

Implement a fully functional Tetris game as a take-home project. No graphical interface is needed, but it must include all seven tetromino pieces, gravity, movement and rotation controls, soft and hard drop, line clears, scoring, level progression with increasing speed, and game-over detection.

Algorithms & Data StructuresTechnical Trade-offsSystem Design
Author's notes

This is a bigger scope than it looks on paper.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and defining the core game loop and data structures, then implement the game logic in a modular, testable way. Emphasize clean code, separation of concerns, and extensibility, while ensuring all specified features are covered.

Pro tip: Write unit tests for critical components like collision detection and line clearing to demonstrate reliability and catch edge cases early. Also, document your design decisions and trade-offs in a README to showcase your thought process.

1. Clarify Requirements and Plan Architecture

Confirm the scope, constraints, and evaluation criteria. Outline the main components: board, tetrominoes, game loop, input handling, and scoring/leveling.

2. Design Data Structures and Core Mechanics

Define the board representation, tetromino shapes and rotations, and algorithms for collision detection, line clearing, and scoring.

3. Implement the Game Loop and Controls

Create a loop that applies gravity, processes user input for movement, rotation, soft/hard drop, and updates the game state.

4. Add Level Progression and Game Over

Implement increasing speed with levels, track score and lines, and detect game over when a new piece cannot be placed.

5. Test, Refactor, and Document

Write unit tests for critical logic, refactor for clarity, and provide documentation on how to run and extend the game.

Key Points to Mention

  • Use of appropriate data structures (e.g., 2D array for board, rotation states for tetrominoes).
  • Collision detection and rotation algorithms (e.g., wall kicks, simple rotation with boundary checks).
  • Game loop design with fixed timestep or delta time for consistent gravity and speed scaling.
  • Scoring system based on lines cleared (e.g., 100, 300, 500, 800 points) and level progression.
  • Input handling abstraction to allow for different control schemes or future GUI integration.
  • Testing strategy, including unit tests for core logic and manual testing for gameplay.

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.