Hi, Recently I had phone screens for Software Engineer position with Amazon and a SF based AV startup (<40 people).
For the Amazon, phone screen, initally I was asked behavioural question on the most difficult project I had done, to which I think I gave good answer including for the follow-ups. For the coding, I was asked to first find if two intervals overlap and for second question, given an interval and list of intervals, where to insert the new interval. For both the problems, I stressed heavily of different scenarios and code. For, the second part, I explained my solution, which went well with the interviewer but while coding it up, I got confused a bit on my looping and popping elements of stack and when asked if I was happy with what I coded, I said 'no' and tried to fix the bug. But, the interviewer said, we were running out of time and if I had some questions for him. How would you evaluate how well my interview went ? I am a bit nervous because during the final few days before the interview, I hadn't coded much and just looked at all the problems I had solved. This along with a sense of someone looking over while I am coding, made me make the mistake I did. This is for the SDE 1 position. Do you think, I would proceed to the onsite rounds ?
For the AV startup, I was given a hackerrank that consisted of shortest path finding algorithm (given 2 hours). I completed 8/9 test cases and 3 of them were bonus ones. I had a phone screen about my submission and possible follow-up on the problem. Before the coding section, I was asked some System design questions and questions like what project was I proud of. I think I answered them pretty good, particularly the System Design ones as the interviewer was asking follow-ups and I was describing what could be done to achieve low latency, high scalability for the problem put forth.
For the coding section, I was asked to go through my submission, which I did but when he asked me to modify my code to encounter another test case, I don't think I particularly performed well. I think I was given about 25-30 mins and it was a simple thing but I jumped into coding it up since I had worked on the submission and had to modify certain functions. After trying for some time, interviewer said that we were running short of time and would be best to explain what was my thought process, to which I explained what I was trying to do and why. He said okay and asked about what work do I see myself doing at the startup, to which I replied how I could setup the data infrastructure and pipelines needed to provide data to different services seamlessly to routing team etc.
I also asked him a lot of questions about how different APIs that they currently have work, to which he explained clearly and some things he didn't have a clear idea, so he let me know about that. After this discussion, I asked if I could say a few things about the coding problem, to which he said yes, I then described another approach and also a possible test case that could fail being a NP hard problem, to which he answered how that could be solved and said the new approach was interesting. The interview went over the time allocated. But, I am not sure how it went. Would I get an onsite based on the experience I had ?
I feel disappoinnted that, I am not writing working code that efficiently in one go. Given, that interview is always of limited time, I think I always require a few 5-10 mins more to make it correctly work.
I would be glad if someone could give me a few inputs on whether to expect anything based on the my exprience described above and also give me feedbacks to improve.
Thanks.