The following bit is pretty boring life-stuff and setup
So a little backstory. My name's Mitchell, and I am a Senior at the University of Texas at Austin studying Computer Science. Maybe if anyone cares I'll make another blog post specifically about just being a CS major in general, but right now I want to talk a bit about the sort of process of getting a job once you're about to graduate.
I guess half the story so far started last semester. I went through a round of about 15 interviews last Spring, looking for an internship. I received an offer from AT&T and they had a pretty strict acceptance deadline, so I had to bail out of the Microsoft application process half-way through. I honestly thought I had a 0% shot at Microsoft anyway, so it was really not as big a decision as maybe it should've been. I ended up working at Cray Inc. over the summer instead, and that was actually a satisfactory choice for me.
Fast forward to this semester. I went to the career fair, talked to Microsoft, applied and sat around waiting for their on-campus interviews to come around so I could try my luck again. Weeks roll by, and a classmate tells me one day that he is going to interview with Microsoft later that day. I was pretty devastated. I wasn't even considered for an on-campus interview this time around, and they pretty much give these things out like candy if you've got a decent GPA and you talk to them at a career fair. Regardless, I continued with my set of interviews and then was time to play the waiting game.
On October 4th, much to my surprise, I get an e-mail from a campus recruiter at about 11 pm, saying that they would like to fly me out to Redmond for final round interviews. The e-mail said that I performed well on my past interview and they were basically skipping the on-campus interview. Uhhhhhhhhhh.
Meanwhile, it was getting to be pretty late October and I still hadn't heard back from the other company high on my list of not-even-gonna-happen-for-me, Google. Whilst waiting for this news, I had already passed through the on-campus interviews of another company here in Austin, and they decided to extend me an offer. Honestly I couldn't describe the feeling of actually hearing the words "we'd like to hire you." CS is a pretty difficult major to get through, so after 3 years of working with another year left, to finally get affirmation that you're ready to go out into the world and do actual work, full time for a company is just peachy.
Actual informative content ahoy?
So I end up hearing back from Google. I am to take 2 phone interviews, back to back, 45 minutes each, and technical in nature, with Google Docs as sort of a whiteboard on which to work. I also have an Amazon interview for some indeterminate amount of time on the same day (and this falls through because I stupidly don't confirm the e-mail. )
Day of the interview, and I'm jittery as hell. Google's a pretty big deal, and having gone through the grinder with them once before I can say they have among the hardest interviews I've taken. They'll ask you a pretty unassuming question and then just continue digging deeper and deeper until you are left confused and slightly panicked because you suddenly don't know how to answer a question. So I'm going into this with an almost defeatist attitude.
I get the first call, and the interviewer on the other end has a bit of an accent. I don't really mind accents, but I have a bit of difficulty understanding people in conversation, and when the conversation is over the phone and through a light veil of an accent, it worries me to no end that I'll just be completely unable to understand anything. That wasn't really a concern, thankfully. He starts off asking about my experience at Intel. I never worked at Intel. For a second I saw in my mind's eye that everything was a mistake, that they didn't mean to call me and instead they meant to call someone else and I was just fucked. I stammer a bit and say that I never worked there and that my name was Mitchell. He says "oh, sorry, I mixed up resumes" and he finds the right one and we just continue on, after I clean my bowels off the floor.
The questions were tough. They ask that I don't disclose on a public forum what the interview questions were, so I won't. Knowing their kind of question, you just can't give them an answer that's anything but linear in time and constant in space. Or that's at least the mindset that you should have. Start from the most basic, stupid case that you could write in a minute and is probably quadratic. Tell them that it's quadratic and that it's unacceptable. Tell them how you can fix it up a little bit. Maybe make it linear with some non-1 factor, make it able to be done in-place.
Then start to really put the screws to that algorithm. If you can do it in one pass, contemplate if it's possible to be done in one pass. Say anything that comes to your mind that you think will help out the situation. Because if you bring up a solution that doesn't work, it's important that they know you know both that it won't work, and why. Really stretch your brain on this one, and do not accept defeat. Only after you've exhausted all ideas possible, or a long time has passed and the interviewer seems to want to move on, should you ever break your death stare with that algorithm. This could be every day for you. Google didn't get where it is today solving easy problems, or solving problems inefficiently.
My first interview was over, and I felt like shit. I did not think that I did well at all, because I couldn't answer his questions, and I didn't even feel like I gave them a decent try.
On to number two.
The second interviewer sounded like a nice woman who works on Google Plus. She had a bit of an accent as well but I was used to the accent by then so it didn't cause much of a problem. She starts off asking me to talk about some projects I've worked on in the past. I gave her two examples, my biggest project and my favorite one. I got just detailed enough so that I showed I knew what I was talking about without running up the timer. If it's a group project, state clearly what your role in the group was.
From there, she asked me another technical question. Again, if you want to know the specifics, PM me. But she wanted me to write the code in Google Docs, and this turned out to be a small disaster. I don't have a headset on my phone, and because my hearing isn't the best, speakerphone wasn't a feasible option. So I had to write all my code with my head cocked to the side, holding the phone up with my shoulder. Because the act of writing the code was so uncomfortable, I really badly wanted to glaze over everything with pseudocode, but that isn't what she wanted. She wanted real code, that tested corner cases, and all that good stuff. Looking back, this is something you MUST do, VOLUNTARILY. I could kick myself for trying to be lazy here. But don't make the same mistake. Go into as much detail as you can, and let them tell you if you need to dial it back a bit.
Anyway, that was uncomfortable. I solved the problem but I felt I took too much time. You never know if there was supposed to be a second question, if time runs out right when you finish the first. I felt like I just spent way too much time and was a bit of a dunce, and that happens in a lot of interviews I've been on. I think it might be best to just assume they've asked all the questions they intended to ask, because otherwise you're just going to worry yourself to death.
After everything, I just felt awful. I thought I blew it. I called my girlfriend and mom, and told them both that I blew it and we could count Google out of the picture. I had pretty much just discounted myself entirely by that point.
So much to my surprise...
I was sitting in my Intro to Astronomy class. It's a fun class I'm taking as an elective because I love space. If I weren't a CS major, I would be an Astronomer. Anyway, we were learning about Hydrostatic equilibirum, and I get a phone call. It was an area code I didn't recognize, but I really didn't want to leave the class. I decided to step out anyway, and I'm very glad I did.
The woman started "Hi, I'm _______ from Google and I've got some exciting news for you" and I was like "derp?" and she continues "we'd like to fly you in to Mountain View for a day of interviewing" and I'm just blown the fuck away. I actually told her, my recruiter, that I was surprised and I thought I did terribly on the interviews and that I was sure I just blew it. She informed me that she was surprised to hear me say that, and that I actually did pretty well (hence the phone call).
The rest of that day was fucked. I actually had adrenaline from noon until about 6:00 that evening. It was like that feeling you have right after you play a game of SC. Cold, jittery, and your stomach is wound around your heart. I kinda wanted to shout from a mountaintop, but there weren't any available mountains so I just had to be excited. Worst thing, I had a test right after my Astronomy class, and I think I did pretty badly on it but not a single fuck was given that day.
Well, now I'm sitting here writing this blog about what's going to go on in the next week. Tomorrow (Sunday, Nov 6) I get on a plane to Seattle, where I'll be put up at a local Marriott with a rental and a daily food stipend, living the high life. For 3 days and 2 nights max. Monday at 9 is when the day at Microsoft begins. I'll be faced with an interview with a recruiter interview and a battery of 45-minute technical interviews after that. Number of interviews can vary, but usually around 4-5 total, one of them being a lunch interview, where they sit there asking you questions and you try to pretend to eat while you're really just trying not to pass out.
As a side note, I'm applying for the Software Development Engineer in Test, if that means anything to you.
Tuesday I fly back, go to school on Wednesday, and fly out at some point on Thursday (I think) to Mountain View. I know a bit less about these interviews but I do know there are 4 interviews and lunch. But I'll be at the Googleplex, so that will be enough...
Well that was a pretty long post. I wasn't expecting to get that much out there, but I'm glad I did. I honestly didn't mean any of this to be like "oh look at me I'm great" and I'm sorry if you got that impression. If you've made it this far, maybe you're a CS major too and I'd love to chat with you through PMs or on Skype or something.
I hope to write more, and maybe someone out there will read it.
TL;DR: Does anyone from the Seattle area know of some nice places to eat? I have 75 bucks a day to blow on stuffing my face.
Also do any TLers work at Microsoft in Redmond? I'd love to say hi.