First, I had a brief call with the recruiter, Rina (who was very nice), to discuss my background, salary expectations, and other typical questions. The following day, she sent me the code challenge. The task was to develop a relatively simple C++ program and review another one. I believe the main challenge was implementing a robust software architecture, with a focus on testability, exception handling, and performance.
After my solution was evaluated, I was invited to a technical interview (1.5 h) with the team lead and a developer. They began by introducing themselves and then asked me to do the same. I appreciated that they showed genuine interest in my previous work. While I was not fully prepared to present my PhD contributions (as I finished quite some time ago), I did my best to walk them through the images from my papers.
Afterward, they asked technical questions about ROS, C++ basics (smart pointers, interfaces, etc.), debugging, performance measuring, and handling memory allocation errors, and also about my challenge solution. The developer then asked me more in-depth questions about SLAM, Visual SLAM, IMU integration, and Visual/LiDAR fusion. At the very end, they left five minutes for my questions. After a couple of days, I was notified that I was not selected, as they found a candidate whose profile was a closer match for the role. I asked for more detailed feedback, which they provided. While I was naturally disappointed with the decision, I appreciate their transparency and the overall smoothness of the process.