Recently I have two remote interviews which I think is weird . Amazon send me a online assessment. I finished the two coding questions in just 30 minutes even though the total allocated time is 90 minutes. It’s online IDE and all the test cases in the assessment showed my code passed. Then I finish the code method summary essay and working style assessment. This morning I got rejection. Since I think I did perfectly on the coding part and the coding approach summary, I wonder if they will kick people out by the working style assessment? Another is the airbnb phone interview, I also finished the question and compiled the code and even wrote test cases in the main program. My own test cases show correctly. And there are 5 minutes left( total interview time is 45) the interviewer refused to go through the code with me (he said someone will test the code later) and insisted the last 5 minutes is reserved for me to ask questions. I didn’t have questions so the interview finished. This morning I also received a rejection. But the code I wrote should work. I am not sure what kind of bar those companies are. It seems much more difficult than Google. I already compiled the code and finished all the test cases but still cannot pass. The bar is mysterious. I am happy if any one can point that if my code is horrible . So I pasted my solution and the problem here Airbnb one is quite clear. They asked me to design an iterator which has next(), hasnext(), remove() method. They also give some examples of using the iterator. So it’s quite clear . The input is list of list of integers:{{1,2,3},{},{},{2},{3},{}}. I use a list{list{int}}::iterator and list{int}::iterator to solve this problem in C++. This is my solution to the airbnb one. The amazon one already shows 22/22 test cases passed. #include #include class solver{ private: list >:: iterator iter_l ; list::iterator iter ; list::iterator last; list > *List; bool check(){ if(iter == iter_l->end()){ iter_l++; iter = iter_l->begin(); } while(iter_l != List ->end() && iter_l->size() == 0){ iter_l++; iter = iter_l->begin(); } return iter_l != List->end(); } public: solver(list >* input){ List = input; iter_l = input->begin(); iter = iter_l->begin(); check(); last = iter; } int next(){ if(!check()) return -1; last = iter; return *(iter++); } bool hasNext(){ return check(); } void remove(){ if(last == iter) return; iter_l->erase(last++); } };
I have seen a lot of interviewers reject a candidate in their assessment if they didn’t ask a question. That could have been the red flag in the Airbnb one.
Amazon is notorious for rejecting based on LPs
LPs?
Leadership principles... Look at some other posts on Blind about this.
On Airbnb did you just solve it, or talk though it to confirm assumptions, explaining reasoning and tradeoffs? Also, reserving 5 minutes for questions you did not use is not good. Why not ask something about the role?
Airbnb one is quite clear. They asked me to design an iterator which has next(), hasnext(), remove() method. They also give some examples of using the iterator. So it’s quite clear . The input is list of list of integers:{{1,2,3},{},{},{2},{3},{}}. I use a list{list{int}}::iterator and list{int}::iterator to solve this problem in C++. I have to write { here because the < is not allowed. It’s quite apparent problem and you should be just careful of the corner cases. The interviewers refused to go through the code with me after I finished and didn’t ask about the time/ space complexity . He only said someone will test it later and insisted that I should ask him questions in the last 5 minutes.
I think we are at a point in tech hiring that we create a mandatory feedback process to candidates. Its unfair to not know what gets you rejected and you lose all the time and effort you put in.
I think everyone here is missing the possibility that your code might be horrible
Not asking questions is a death sentence in an interview. You should ALWAYS have a set of questions to ask.
^this^
You’ve repeated your code three times in this thread. Maybe you come off as aggressive — in an asshole way, rather than an eager way.
For AirBnb, you need to be perfect. If it took 45 mins, that would have been rejection. Their expectation is finishing in 30 mins so you can go through the code and show it works for any edge cases. And when coding, you should not fix your own code too much. I was rejected at the second round at the onsite but passed the first one and got a feedback. I passed but there were still numerous picky points such as he rewrote this statement twice, he discovered a bug while testing it etc. I think I was able to pass it because I solved the problem before. The expectations at Airbnb and some other startups are atrocious and unreal. It will be advantageous to someone who doesn’t have a job or someone who doesn’t have an important role for a while. Feels like an Asian exam where they test for useless things and the bar is unnecessarily high for no reason and even the test preparers don’t have an idea why the problems were unnecessarily complicated and don’t allow a slight mistake.
thank you so much. That’s the most helpful answer in this thread. I think the problem explanation took 5-6 minutes and I used 34 minutes to finish coding, compiles and writing test cases and fix all the edge cases I can imagine. If they wish me to do it in 30 minutes I think it’s quite a high bar. Also I fixed some of the code when I first compiled the program because initially the C++ library <list> is not there and it shows lots of errors in the first compilation
Yeah, basically you can’t pass unless you have practiced the problem 1-2 times before. It depends on preparation and luck. Most of my friends who passed Google and Facebook failed because they didn’t practice enough. The reason the expectation is high is because their set problems used to be limited. People solve all of airbnb problems from leetcode. They become interviewers and expect the same thing. This time though their problem sets are more so candidates have harder time meeting the same bar. I should say bar is higher because of that and this bar is a made up bar that selects lucky candidate. It favors existing engineers because this practice will protect their job; thereby keep getting high salary. Probably bad if you are a director and need to hire quickly. Think of doctors enjoying high salary due to license limiting the supply pipeline. This type of study based coding exam kind of creates that. Good for the first ones who joined when it was easy.
It's a job interview, not a coding exam. They already know you can code. They're not testing your coding abilities (although if you cant code you should and will be rejected). In-person coding interviews exist to give your interviewers a sense of what it would be like to work with you. Getting a half-right solution while demonstrating willingness to learn, be coached, and collaborate with team members will lead to a better outcome than a perfect solution developed in silence. I have rejected plenty of obviously smart and competent people who lack communication skills, empathy, or a demonstrated willingness to learn. Hell, maybe you smelled bad. Nothing worse than walking into an interview room that smells like an unwashed homeless man. I sure as shit don't want to work with someone every day who smells awful on interview day - what will they smell like on a normal day??
I see. I would prefer people ask me the very hard algorithm question instead of judging me based on their personal preference. I am an interviewer too and I reject people based on only if they can solve my problem.
That's stupid. You should hire people who you want to work with and who will fit in well with your team. The best developer in the world will be a net negative if he's an asshole.
Always ask questions to the interviewer. I am not saying that this was a factor in your rejection.
Amazon is online assessment, no one is there. And all the test cases show passed, for example 22 of 22 test cases got accepted . And I finished all the two questions in 30 minutes. That’s quite weird .