My Roblox OA from a month ago.
Round 1: Cognitive Games, three mini-games
Robots: Assemble tools to cross different terrain. Try different assemblies to reach the finish.
Factory: Optimize the production-line network, identify bottleneck stations, and maximize cash flow on the high-profit lines.
Mars: Outpost: Modular programming. Watch out: only functions packaged during the testing phase can be called later. Afterward, default parameters can't be changed and new variables can't be added.
Round 2: Behavioral, 23 situational-choice questions
Format: Workplace scenarios, choosing the Most Effective and Least Effective response for each.
Common scenarios and approaches:
Schedule versus quality: A nonfatal bug is found before launch. Prioritize assessing the long-term risk, proactively communicate with stakeholders, and put monitoring in place. Don't hide the issue on your own or delay without a reason.
Cross-team blockers: An upstream or downstream interface you depend on is delayed. Proactively establish a way to stay in sync and look for a minimum viable alternative, instead of immediately complaining about the other team or simply waiting.
Round 3: CodeSignal, two problems in 50 minutes, unproctored
Both were accepted in twenty minutes. The problems leaned toward simulation and data processing.
Q1. Lasers and Robot
Problem: Lasers destroy entire rows and columns. From its starting point, the robot can only move in a straight line. Find the maximum number of safe steps in one direction.
Approach: Assume the starting point is safe. Store laser rows and columns in separate hash sets. From the start, scan one step at a time in each of the four directions: up, down, left, and right. Stop at a wall or a laser row or column, and take the maximum over the four directions.
Q2. File Chunks / Consecutive Byte Ranges
Problem: A file is uploaded as a stream. Whenever a chunk [start, end] arrives, return the merged consecutive intervals immediately.
Approach: A merge-intervals variant. After adding each new chunk, sort by the left endpoint and merge in a linear pass. The key is the definition of consecutive: if start <= prev_end + 1, merge into one interval, as with [1, 3] and [4, 6].
Discussion
Loading comments…