The Meditations
7 March 2016 • 6 min read

Interviewing at Nvidia

I had intended for the title of this post to be I hate Nvidia, but since I didn’t want to write an emotionally charged useless piece of crap post that wouldn’t be of use to neither me or anybody else I am sticking with the current title. Interviewing at Nvidia was an intense and tumultous experience for me and since I didn’t make it even past the telephonic interview I must vent off some steam and collect my thoughts.

During my college days Nvidia was the company everybody wanted to join and I wasn’t an exception. I wanted to work there badly, the money, the fame and the respect were too alluring to reject, but I was never destined to even appear for the aptitude test. You see I had failed (actually I was absent for a viva) a semester which meant that I couldn’t be interviewed for a good chunk of respectable jobs including Nvidia. Fast forward to the October/November of 2015 when a very good friend of mine who also works at Nvidia offered to refer me. I wasn’t much sure that I wanted to get into the whole interview affair again, but he was kind enough to say that he could refer anybody but still he asked me because he thought I am a solid programmer and Nvidia could do me a lot of justice. So I submit the resume, mind you making the resume for a systems programming job is not an easy task when all you’ve done is web application development. Still, I went through the whole horrid experience of trying to conjure something concrete to prove my programming skills. I submit the resume and wait for them to respond but they don’t respond for a solid 1 month and 24 days! I could learn a whole damn language in that time. Anyway, I get a call from HR and we set up a telephonic interview a few days later.

Now I am in a real panic mode. I realize I have to brush up my OS fundamentals, C fundamentals, DS fundamentals etc. and I don’t have any time. Somehow, I manage to revisit the fundamentals of OS and C properly but I remember jack about data structures and it’s not like I use data structures everyday. Hell, there are only two data structures that I understand and use every day hash maps (javascript objects) and arrays. Data structures don’t come alone they come with algorithms and again I know jack about them. If you read any text on algorithms you will understand how much performance is stressed upon, but I never even think of algorithmic performance. I am yet to encounter a situation where optimizing the time or space complexity of a piece of code is even necessary in the first place. All I have to worry about is completing a feature with minimum amount of time while maximizing correctness and maintainibilty of the code. The general rule of thumb is think about performance only when it is not good enough. Armed with such knowledge I head into the interview only to come out confused, whether I did good or not overall. I did good in C, didn’t have experience necessary for OO questions, fumbled a bit in OS questions and marginally screwed up the data structure question. If I am to judge myself, then I did pretty good, but on absolute terms I didn’t get the overall feel that interviewer liked me. Another noteworthy thing to mention would be that I gave the interview while standing in the backyard of my home which is so close to the road that the interviewer must’ve thought I live on the street. I couldn’t get good network in my home you see. My ability to screw up such small yet important things never ceases to amaze me.

Now that the interview is over it’s time to wait. Since I thoroughly enjoyed going back to the fundamentals with a better perspective I desperately wanted the job. The thought of such a good salary, respect, intelligent peers and hard core programming elated me. I was day dreaming profusely and anxious to be called in for the next round until a week went by and I heard nothing. I didn’t like it but I was still optimistic. Another week went by and my optimism turned into solid anger and irritation. Another week went by and I had gone through the whole debillitated state of depression and confusion. Another week went by and I was in my post-depression phase when I finally heard that I haven’t made it into further rounds.

/emotional and hateful rant starts/

I fuckin hate you Nvidia. You’re like that evil hot bitch on whom the humble and simple minded protagonist bestows boundless love and care only to be rejected in favor of someone you consider absolutely undeserving. I am going to add you to my imaginary list of enemies on whom I’ve solemnly swore to exact revenge by simply acquiring more wisdom and intelligence (I don’t think my concept of revenge is tough enough ;)).

/ending the rant quickly/

Okay, so not getting the job is bad but the whole experience was a lot more instructive. Here are some nuggets of wisdom gleaned from this endeavour designed for doom from the start.

Revisit Fundamentals

You should keep revisiting the fundamentals periodically. It can offer you interesting insights since you are much more acquainted with the subject matter thus freeing your mental energies for dealing with abstract concepts.

Curtail Day-Dreaming

I know that I day dream but I don’t know just how much I do it and what costs I am paying for it. I haven’t exactly formed a proper understanding of what exactly this activity is, so the first order of business would be understanding it better.

Stress Management

I became really unproductive during the weeks between my interview and when I got the final word on it. This is simply not tolerable, if I am going to claim a high standard of ethical conduct on my behalf then such behavior is far from anything ethical. Sure I am only a human being and the axiety is bound to seep into my daily job, but it shouldn’t affect my work in any significant way. I shouldn’t stop thinking about a problem hard enough or pass something less than the best I can produce in normal circumstances just because I happen to be anxious about something. A buddhist monk would tell you that this is what ‘Living in present’ is. You must not let either future or the past affect you when it is required of you.

How and what’s of interview

Since I wanted this job so badly I tried to prepare to the best of my knowledge and I also thought a lot about interviews in general. I have absolutely zero doubt that given a chance I would be any less effecient than a good programmer at Nvidia, but this doesn’t mean that others can come to the same conclusion. The path of establishing the validity of my statement passes through the tricky regions of interview. The widely adopted format of interviews only filters the candidates that are only good enough (not the best) as of the date of interview and Nvidia seems to have adopted such a format.

Post by: Ajinkya Tejankar