Hiring process consists of 3 steps. I appliedd to NIH through a headhunter, initially there was an interview with the HR of the headhunter. After the phone interview, I was given an assessment which consisted of some C programming, Mysql, and Python problems. It took me almost two weeks to finish it. The manager was nice, although he did not provide me enough hints, he gave me many chances to finish it. I did complete the assignment and then was scheduled a chat room interview. I was asked many hardware questions that I had no idea of and some simple programming problems like reverse the string, how many times a function is called. After this interview there was supposed to be an onsite interview, but I did not get any call after the chat room interview.