I was approached by an external recruiter and had two interviews with a take home task.
In the first interview they asked about my experience with Linux and my experience in my job and in my personal projects. There are also a couple of "technical" questions, but nothing difficult.
The next step is a "coding challenge" that I have to complete at home and they give me one week to send the result. This is a task in which I have to develop a C++ program to parse some data from an accelerometer and save the output in a given format.
After this task is completed, if they like the result, they will schedule the second interview.
Most of the second interview is spent discussing the program I developed for the task they sent me. I explain my code step by step and they ask questions about why I did some things the way I did or why I didn't do certain things, and what would happen if something in the input changed in a certain way.
The second part of this second interview, is a series of technical questions about computer science, operating system and C++.