It is time to gradate. I asked some inner-recommendations, but seems that no luck with me till now.
Interviewed so far with a StartUp, VMTurbo. (rejection)
First round is Online Test: a very simple question and a BST. (not asking for compiling just explain the ideas. solved)
Second Round: Find the target value's right most index in a sorted array. ( There might exist duplicates)
This is anyway a very simple question, just need to use binary search. Since it is looking for the rightmost entry.
1) we can find the target value first and go right down till not match found. Worst time complexity( O(n) ).
This can pass the leetcode. The interviewer asks for more optimized way.
2) I am actually very clear of what she was asking for: make the worst time complexity to be ( O(lgn) ) as well. However, the interface of my function doesn't actually support recursion. She seemed to only pay attention to recursion.... Even after my saying that my current function doesn't support recursion.... she stopped to check my function for a minutes and said: that is fine...... erh....wtf, this is really not fine.... I revised my function parameters and almost rewrite the whole thing, but time is not enough. There is a bug I didn't solve it in time.
2016, April 8th:
Phone Interviewed with EMC. The HR said the position is for Edmonton(which is a really f u c k ing cold place). HR said he would like to talk to other candidates to see who is the best for onsite interview and then reply me back, because interview is so expensive to them.... (thousand dots here)....
2016 April 20th,
Get an appointment from Microsoft and booked a first interview with HR. This opportunity is highly contribute to my friend's internal recommendation.
2016, April 21th.
Video call interview with ** Lab, which is a tiny private company based Toronto. I think what they do is to provide external support for Apple, Facebook and etc al and get paid by the project. I did an online test first. The test questions are super easy. 4 questions(two programming question and two selective question) finished in 5 minutes. The video call is just fine. I am a bit nervous....not very sure why though.... He asked me 6 programming questions and 1 system design likely question (not actually system design though). This company has a reputation for doing heavy work but less pay.....wtf, who wants to work for it if has other choices.....Anyway, a nice practice of my programming interviews. (Rejection. I think the interviewer knew that I am going to reject them if they offered. So, they reject me first.)
2016 April 25th.
Interviewed with Microsoft. I though he was just the HR but it turned out he is a senior software engineer in MS. Interviewer didn't introduce himself and asked directly my background. I generally talked about my two internships with Google and research done in my current university. He asked me to explain what is MapReduce (because I had mapreduce experience on my resume). I tried to explain him using a simple example(word counting). He said "excellent, he has never seen anyone explaining in this way.". He then asked some cryptanalysis questions (which I had related experience). What is block cipher, stream cipher. What is the difference for them two. What is HTTPS and SSL. how is the process of AES encryption.... totally brush up my former experience. Two coding problems: level order traversal of BST and change BST into double linked list. I misunderstood the first question. I thought he want me store each level's value individually. Thus the time complexity is O(N2). He said you can just optimized it into O(N). I think very hard and said it was impossible. After a while, suddenly realized that he just wanted to to traversal..... traversal... no need to store each level's value. Using queue to solve it instead. Almost no time for second coding problem. He asked me to send the answer to him after this talk. He then asked a lot of design pattern question. For example, which design pattern I am familiar with..... I told him I did do some code re-factoring work before but not that much. I told him something like adapter, bridge.... he asked me to make an example but I just explained the concept... Interviewed for almost for 1 hour. I am using Linux system, skype is not working well... got hang up twice....By the end, the interviewer said it is overall positive and some one will contact me later......BLESS!!!
This is the most professional interview I have done so far. It totally brush up my former experience and pretty fair for the interviewee.
2016 May 3rd. Get a notification from Microsoft that I can continue with onsite interview.
2016 May 4th, Interviewed with Shopify on April 28th. Three rounds: first two rounds are just general talks. Third round is a pair programming session. the interview question is tic-tac-toe (human play with human). I finished all the core functions, but just use printf to debug my code. But the feedback said that they are looking for a formal
testing framework..... They didn't tell me at the beginning that I should set up a formal testing framework. Maybe, it is always a good habit to set up testing framework for any code from the begining..... lessons get!
2016 May 11th,
Did two interviews with Microsoft. Both of them asked system design questions. First one: Suppose we have a localhost website asking for family name and given name, using c++ to design what happens next..... I really dont know what he is asking for. I wrote a lot of socket connection functions...... but these are absolutely wrong. Second interviewer totally brushed my knowledge on C++, for example what is virtual constructor and deconstructor.... etc al. Third interview was supposed to talk to the manager, however, because of my skype suddenly corrupted, we have to reschedule it.....erh, it was a terrible day.
I will keep on update my process of hunting for jobs. Hope to get a satisfied job offer soon.