I applied through a staffing agency. The process took 2 days. I interviewed at Gigya (Tel Aviv-Yafo) in Oct 2015
Interview
Server-Side Senior .NET Software Engineer
These are the stages of the interview process:
1. Phone interview with professional questions.
2. Professional interview with the designated team leader.
3. Professional interview with 2 higher managers.
4. Personal HR interview.
5. Providing references.
After the phone interview I came in for the first professional interview, and as I was free for the day and I passed the first interview, I was offered to stay for 2 more interviews. The second professional interview was supposed to actually be two separate interviews, but for me it was just one, with both interviewers present.
In the second interview, as I was answering the question of the first interviewer, the other was a bit rude and at some point just stopped listening to what I was saying and started reading something on his phone. After about 5-8 minutes, when he stopped looking at his phone and started asking questions again, his questions seemed "petty" to me, even a little spiteful, as he repeated questions the other interviewer had already asked, but wanted a more detailed answer with detailed explanations, and kept pushing for more specific answers every time.
Besides that small unpleasant feeling in the second interview, the overall process was nice and it seems that the company requires a high level of professionalism from its candidates, which is a good sign.
Interview questions [5]
Question 1
Design or write in pseudo code an implementation for LRU Cache (least recently used cache). The collection will have a defined maximum number of items (Item = Key & Value), and will only keep the items that were used most recently. If requested to exceed the maximum number of items, the oldest items will be removed from the cache. Each time you add a new item, set a new value to an item, or read the value of item that exists in the cache, it is considered to be a most recently used item and should be removed last.
You should consider and explain the performance and complexity of your solution each time you set or read an item, the desired complexity should be less than O(N).
General C# questions, such as what are generics, collections, locks, GC, multi-threading, tasks... Was asked to go into details about what is the purpose of each and why was it made.
The interview process was extremely good.
I felt like the interviewer was trying to help me succeed instead of make it harder.
The questions were relevant and about technologies which are being used across multiple architectures world wide.
Interview questions [1]
Question 1
I was questioned a lot about Kafka and how it works.