You may complete either the GUI (Frontend team) task or the ROS 2 (Backend team) task. Both are designed to assess practical software-development skills, but they focus on different kinds of work. Choose the one that best matches what you want to learn and work on.
Completing this task will put you on the Frontend team.
You will build a small interface for a provided 3D viewer. The viewer itself is already implemented. Your task is to create simple controls that change the brightness and zoom settings. You will also add preset profiles and save the most recent settings so they persist between browser sessions.
React |
JavaScript |
HTML |
CSS |
Node.js |
npm |
- Writing JavaScript, HTML, and CSS
- Seeing immediate visual changes in a browser
- Building user interfaces and making them easy to use
- Working with React components and browser state
You will not need Three.js, 3D-programming, or URDF experience. The provided viewer exposes a small, simple API for the controls to call.
Completing this task will put you on the Backend team.
You will create a ROS 2 node that calculates a 2D position from incoming movement values. Your node receives velocity movement commands, updates its position and publishes the result.
Ubuntu |
ROS 2 |
Python |
C++ |
- Writing Python or C++
- Working in a terminal
- Robotics, messaging systems, and real-time-style logic
- Debugging program behaviour from command-line output
The provided simulator and checker let you verify your node without needing physical hardware.
| GUI task | ROS 2 task | |
|---|---|---|
| Main goal | Add controls to a provided 3D viewer | Calculate and publish a robot position |
| Main environment | Browser | Ubuntu terminal and ROS 2 |
| Main languages | JavaScript, HTML, CSS | Python or C++ |
| Best fit | Front-end and UI interests | Robotics, systems, or back-end interests |
| Key concepts | Components, events, state, persistence | Nodes, topics, messages, subscriptions, publishing |
There is no preferred task. Pick the one you are most interested in explaining and extending during the interview.
Once you have chosen a task, return to the main onboarding README and follow the process there.