← Applied Interview Insights

Applied·Software Engineer·Take-home Assignment·Intermediate

Intermediate
Jun 2026

Summary

Applied gave me a take-home style coding problem for a Software Engineer role. It was a physics simulation question, which I did not see coming at all. Pretty niche stuff for a typical SWE interview.

Questions Asked (1)

Q1

Build a multi-agent 2D collision simulator where each agent moves using a unicycle motion model with constant speed and turn rate. Advance all agents in fixed timesteps using forward Euler integration and report the first timestep at which any two agents overlap, or report no collision if none occurs within the simulation horizon.

Algorithms & Data StructuresSystem DesignTechnical Trade-offs
Author's notes

I had not touched unicycle kinematics since a robotics elective years ago and the muscle memory was not there.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying the problem constraints and assumptions, then outline a modular design with separate components for agent state, motion model, collision detection, and simulation loop. Explain the forward Euler integration and collision check per timestep, and discuss how to efficiently detect overlaps and handle edge cases.

Pro tip: Mention that collision detection can be optimized using spatial partitioning (e.g., uniform grid or sweep-and-prune) to avoid O(n²) checks, and that you would validate the simulation with simple test cases like two agents on a collision course.

1. Clarify requirements and assumptions

Ask about agent count, speed/turn rate ranges, collision shape (circle vs. point), timestep size, and simulation horizon. Confirm whether agents can have different speeds and turn rates.

2. Design agent state and motion model

Define state as (x, y, theta) and update using unicycle model: x += v*cos(theta)*dt, y += v*sin(theta)*dt, theta += omega*dt. Note that forward Euler is first-order accurate.

3. Implement collision detection

For each timestep, check pairwise distances between agents. If distance < 2*radius (for circular agents), report collision. Use spatial partitioning if many agents.

4. Simulation loop and termination

Iterate timesteps up to horizon. At each step, update all agents, then check collisions. Return the first timestep with collision, or 'no collision' if none.

5. Discuss trade-offs and optimizations

Talk about accuracy vs. timestep size, O(n²) vs. spatial partitioning, and handling of simultaneous collisions or agents starting in collision.

Key Points to Mention

  • Unicycle motion model equations and forward Euler integration
  • Collision detection using distance checks and agent radius
  • Time complexity and spatial partitioning for scalability
  • Handling of edge cases: initial overlap, simultaneous collisions, boundary conditions
  • Trade-offs between timestep size, accuracy, and performance
  • Modular design for extensibility (e.g., different motion models, collision shapes)

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