I applied through a staffing agency. The process took 3 weeks. I interviewed at Rapyuta Robotics (Tokyo) in Nov 2021
Interview
Three interviews, all about C++. One about multi-threading, another about algorithms and a third one about general C++. All of them happened on a google docs, very standard. Coding proficiency is required.
Interview questions [1]
Question 1
Algorithms in C++, Multi-threading, more general C++ questions
I applied online. The process took 4 weeks. I interviewed at Rapyuta Robotics (Zürich) in May 2016
Interview
After applying a first group interview was scheduled with some of the engineers. The first interview was mainly about my past projects and me as a person.
After that, there were two technical interviews. First one was a pure programming interview and the second one consisted of high-level discussions about server architecture, network etc.
In the end they offered me an internship with a salary far below the average for engineering internships and waaaaay below the general average for engineering graduates in Switzerland. Minimum duration of internship is 4 months, you get a slightly better salary if you oblige for an internship of 12 or more months.
Interview questions [3]
Question 1
First interview
------------------
- Did you ever build your own robot?
- Explain State estimation/Kalman Filters
- What's the Kalman Gain?
- What's the difference between soft and hard time constraints in control systems
- What does the "virtual" keyword do in C++?
- What's an Eigenvector?
- What ways are there to represent a rotation matrix?
- What's the difference between precision and accuracy in context of sensors?
Second Interview
----------------------
Three questions directly from the book "Cracking the code Interview".
- Implement a stack
- Keep track of the smallest / largest value in the stack
- Binary manipulation: Develop an algorithm to swap the the first and second bit of every bit-pair. So Swap bit 0 with 1, 2 with 3, 4 with 5 and so on.
Third Interview
-------------------
- How would you implement remote control of drones? Imagine multiple drones and multiple pilots, each with his/her own computer. Only one pilot per drone at a time.
- TCP or UDP for the prior question?
- How can you communicate to drones behind a customer's company firewall? (NAT Problem: All share the same IP address)
- How does DNS work?
- What's the difference between a thread and a process?
- What data structure would you use for random data access?
- Data structure for a cache that "forgets" the elements not accessed for the longest time first.
- Binary Search, Binary Trees, Red-Black-Tree: Explain what these are and how we could use them for the "random data access"-problem.
- In programming, what's an interface?
- Name a couple of design patterns and explain them.