Tag Archives: Microsoft2013

Intern at Microsoft day #1

New Employee Orientation day! Me and David woke up early at 7:00 and finished Sunday’s supply of instant ramen. We left the house at 8:40 after I convinced him that would be plenty of time to make it to the Microsoft Visitors Center by 9:30.

Since neither of us checked the building’s location before leaving I was very wrong. We went two blocks too far south. We asked the desk at one of the buildings, south of the Microsoft studios, for directions and they gave us an updated map. Every other map I had seen prior was missing the new Microsoft game studios and the Commons Cafeteria. I have since lost this awesome map otherwise I would post it.

The orientation itself assisted us through about 3 sheets of dense legal forms. I messed up and wrote my birthday under this current year (2013) and a Microsoft lawyer even caught the mistake then and there.

After orientation, or NEO in microsoft speak, we headed off to our team’s office’s,  but not before we all got free launch and a t-shirt.

IMG_20130514_233018

This makes three Microsoft t-shirts!

Upon arrival my team was in a bi-weekly trio meeting. A trio meeting is when test, dev, and project management gets together and checks on progress. Since I am in Sustained Engineering progress means bugs. Of course we are now getting into NDA territory. All I can say is that there were indeed bugs, and that progress was being made on fixing unsaid bugs.

I spent the next day or two, or three, configuring my workstation and reading. A major portion of this amounted to acquiring source files and building. On one hand I miss Linux’s tradition of everything using make files. On the other hand building Windows means building what would amount to a full distro in the linux world. Compared to the distros’ build farms Microsoft has developed a convenient build process.

The view from my temporary office. A recent re-organization left open an office right between my mentor and our boss.

The view from my temporary office. A recent re-organization left open an office right between my mentor and our boss. I may move before the summer is over.

microsoft_internet_speedtest

My roommate, David, ran the same test so I know I cannot be alone in this curiosity.

IMG_20130506_183506

Microsoft’s free pop will either cure my suger habit or cure my healthy BMI. This first day I went overboard but I have since been drinking more tea. I am not alone with the tea; this floor of the building alone is consuming about half a box of green tea bags per week.

Update 2013-10: If you are still interested please consider reading through the overview of my internship.

Invasion of Nintendo America’s campus

On the Sunday of arrival I and my roommate David went to 7-eleven for essential food supplies. We took a detour on the way and invaded the Nintendo of America campus. Visits into the buildings are only possible with an employee guide so this is the closest we will be getting this summer.

We did not find much. Beyond various signs the campus bore no markings of Nintendo. I was hoping for maybe a Mario statue but there was not even an occasional plushie on a window sill.

The lone Wii. No Wii Fitness boards were seen.

Look! We found a nintendo sign! Or atleast maybe, the sign lacked the critical border around the logotype. We can only assume this was not a Genuine Seal Nintendo sign.

Update 2013-10: If you are still interested please consider reading through the overview of my internship.

Flight to Microsoft

This Saturday I spent 2.5 hours sitting in Calgary airport’s USA Customs and Border Protection’s Secondary Inspection waiting room. Said room is as boring as the name implies. I cannot blame anyone and the long wait was 100% to blame on only only having one person working. From what could tell everyone was putting in long hours yet they were all kind & friendly which must require effort when scaled to such volume.

My roommate, David, says the Vancouver airport had a full staff at nine employees compared to Calgary’s one. He spent only 15 minutes in secondary inspection.

The 2.5 hour wait forced me to miss my flight. Alaska Airlines tried their best to book an alternative flight but that did not work and I waited until Sunday for Alaska’s next direct flight. It was apparent the Alaska employees cared and had the authority to fix the situation. So thank you to Alaska Airlines for getting me to Seattle before Monday’s orientation.

Snapshots of the flight itself:

Our plane before loading

Our plane before loading

A random Calgary suburb

Calgary's main river from the air. It snakes down from the mountains and will flow into the hudson bay.

This river will join Calgary’s main river and will flow into the Hudson bay.

Most of the flight between Calgary and Seattle is over mountains. This is the mesmerizing top down view of mountains no game has quite replicated.

That clump of buildings in the photo’s middle is Microsoft’s Redmond campus. One of the squarish buildings is Nintendo of America.

Update 2013-10: If you are still interested please consider reading through the overview of my internship.

My Microsoft internship interviews in Redmond

Before applying to Microsoft I had read every blog post I could find by past interns and intern candidates. Since I know I’m not alone I want to leave my own experience. The summery of my story is next summer I will be interning at Microsoft working in on Windows. The internship does not start for another 4 months but I am already very excited. This post should be long so if your busy or lazy you might want to read at a better time. Please do not stay awake past your bedtime reading everything you can about the internship and interviews; I did a few times and frequently regretted it in the next morning.

The next two cover the process before the Redmond interviews which in turn is the third section.

Applying at Campus Career Fair

You can apply either online or in person if Microsoft sends recruiters to your campus. If you get the chance to apply in-person you should jump on it. Microsoft’s recruiters were real engineers and a lot of fun to talk to. A few months ago I wrote about my application. One thing I should add is the on campus recruiters perform a resume screen before sending the collected resumes to Microsoft. At the Q&A session the recruiters held after the career fair they warned about dropping off resumes without chatting.

Reading in between the lines I think this means the recruiters were tasked with making recommendations. Without talking to you they can only go by your resume which is no better than submitting online.

On campus interview, aka first round interview

I also wrote a post on my first round interview. Overall at this stage I would worry about whiteboard coding and have a project you can talk passionately about. Also take the time to review as many problems online as you can. Microsoft says they want candidates passionate about tech and I do not think those are not fluff words. This does mean you need to worry about signalling your passion. Getting excited and animated is easy for me but I know many programmers are a lot more reserved. You might need to practice by talking with yourself. One extra warning: check your house for quiet roommates before entering into long & loud debates with yourself over technique subjects. Nothing is quite as awkward as discussing the merits of C++’s exception handling then turning a corner and running into your roommate.

After the first round interview I got an email of congratulations. About two weeks later someone contacted me with the interview date and arranged travel to Redmond.

Redmond Interviews, aka second round interviews

Finding out who I was interviewing with

Two days before I was to leave a third person emailed telling me who I would be interviewing with. Their email’s exact text was “Windows Windows Live”. Now if you are a non-Microsoft employee this means two exact things: 1, they made a typo and wrote Windows twice, and 2, I was interviewing with Windows Live. I later verified this conclusion with other interns. Since I was gunning for low level work to complement my prior experience I was disappointed.

Yet I was wrong. It turns out Windows Windows Live is Microspeak, jargon specific to Microsoft. Since intern candidates are by definition not working at Microsoft you can imagine why we would get confused by this Microspeak. What Windows Windows Live is supposed to mean is Windows & Windows Live, which is a division of Microsoft.

It may seem like a minor issue but for the few hours it took to discover the misunderstanding my enthusiasm was killed. I was still happy with the chance to interview but working outside of my existing interests wasn’t very appealing.

Flying to Seattle for the Interviews

Below is a photo I took the night I flew out. There is nothing special about the photo, this is Calgary’s natural state. By this time of year the concept of a room temperture outside is foreign. The snow bleaches the landscape a cold white. The occasional chinook may melt the snow but this serves only as torture by simulating the beginning of winter, again.

DSCF4035

Now here it is before the flight, at 18:00. We do not get very much sun during winter.

DSCF4042

And for comparison here is Seattle before my flight home:

Seattle airport viewing the tarmac from terminal c

When I landed in Seattle I could smell the air, and it was sweet. I thought I might have been smelling spilled oil or other plane liquids but the sweet smell carried on into the city!

It did rain over my stay but that was not enough to dampen my enthusiasm to Seattle. Stepping off the plane was like time travelling five months forward to a none frozen Calgary.

Both my way there and my way back was quite painless. Microsoft arranged for a towncar to pick me up at the airport and even provided a Taxi voucher for the way back to the airport from the hotel. It was only back in Calgary that I had to arrange my own transportation.

The reimbursement for my travel and food expensive was also painless. I have already received and cashed the check. They even provided an option to reimburse in Canadian dollars.

The stay

Microsoft booked me at the Westin in Bellevue. I must say the hotel was the nicest I’ve ever stayed in. For a bit I got worried Microsoft had mistaken me for a full time candidate since it was that nice.

Morning of the Interview

At point I had yet to meet a Microsoft employee. Everyone from the towncar driver to the hotel knew I was coming. It almost felt like Microsoft was masterminding everything, always in control but never appearing. Since I don’t travel often this made the trip much more relaxing.

12:00 was our departure time so I went down to the lobby at 11:30 hoping to meet some other candidates. At first there was just three of us. One New Yorker and an Ontarian. The New Yorker was interviewing with the Office division and the Ontarian with Servers & Tools. As more intern candidates piled into the lobby’s couches we found out that the Ontarian was vastly outnumbered. Everyone else was split between Windows & Windows Live and Office. All the candidates were Software Development Engineer candidates.

When 12:00 hit we all split up into buses based on interviewing division. The trip to Microsoft’s Redmond campus did not take long and we were soon at the main Windows & Windows Live building. After checking in and receiving name tags we moved to a large board room. This board room acted as our home base. In between interviews we all returned and had ~15 minutes to eat, chat, and rest up for the next interview.

 

Interviewing at Microsoft

The whole interview process was planned and scheduled. And when I say scheduled I mean we received a schedule:

ms_interview_schedule

After launch at 13:00 the interviews started. This was both the most interesting portion of the experience and the portion I can least talk about. Prior I had read most of Glassdoor’s interview reports but even so all the questions I was asked were new to me. I liked it that way since I could puzzle through the problems and ask real questions. One interesting fact was that all candidates were asked questions from the same question pool. Thus after the interviews we all chatted about the questions.

For the first interview my interviewer was from Visual Studios.To my despair I missed the solution by a mile. Here I’ve gone and flown to another country and I’m grasping at straws on the first question. I was humbled and just a bit depressed. To my luck this question was a tricky problem for most people. One of the Office candidates told me the official answer and I think I might have been close without realizing it.

The second interview went better but not great. My interviewer was from the Internet Explorer team and picked a question from outside my area of expertise and had the grace to tell me so. This made me feel better about not completing the entire question. My implementation was going fine until it wasn’t. One of the three cases I needed to handle required me to break a critical assumption I made at the top of my implementation. This was after taking a decent quantity of time to come up with my algorithm. Still I am proud of how far I did get even if I did not very far at all.

Interview number three was the most awesome. I had an interviewer from the Windows Kernel! He even had a massive unix hacker beard! To be more specific he worked on the filesystem. His question style was to look over your resume, pick a term, then ask you “What is <term>?”. If you were not excepting this, like I wasn’t, then you’ll be taken aback. Still he was a lot of fun to talk to and had no problem with me referring back to linux for the technical questions.

My final and forth interviewer was from Sustained Engineering and will be my boss this summer. This interview went the smoothest of all. I found the “perfect” solution and implemented it with only one bug resulting from my being clever. In hindsight a bug due to over cleverness is the exact *wrong* thing to do when your interviewer has to deal with the resulting codebase. My clever trick was to use bit manipulation to avoid a conditional branch which I then not mixed up with negation in two’s complement.

In every interview I had a real chance to ask questions and got honest answers. They even stopped my problem solving to leave time for questions. The interviews themselves were held in various unused offices. The offices had two chairs, a desk, and one or more whiteboards. The occupied offices I walked past were well outfitted for programming. As a bonus there was even a pile of old unused computer parts and monitors sitting in the larger corridor. I can only assume that this pile bodes well for a non-authoritarian office environment.

On a fun note one of the interviewers used a prototype Surface Pro, this was a few days after the official announcement. I only noticed it when he closed the kickstand and I got a glimpse of the distinctive “128GB” labelling. He said the battery worked very well for his needs. Note: I’m not sure if this information counts as confidential or marketing.

Results

After the interviews we piled back onto buses and went to a Microsoft showroom/waiting room. There was a Microsoft Pixelsense, Microsoft Xboxes, Microsoft Phones, and Microsoft snacks. To be honest I don’t think Microsoft designed the snacks; but they did provide them. There was pop in a mini ridge and bowls of candy everywhere. While waiting for the results we played tower defence on the Pixelsense, snacked, or chatted. Some candidates browsed wikipedia for sights to visit the next day.

About an hour later the first candidate was given his results. He had not been accepted. Soon after I was called away.

Imagine my excitement when the recruiter said “Congratulations!”. Yup, I managed to get the internship despite not solving all the questions and failing the first interview.

Since multiple recruiters were delivering the news in parallel when I got back to the waiting room only three candidates were left. Me and another guy took an SUV back to the Westin and I went off on my own to find a McDonalds. Other candidates, successful or not, went off to max their food budget. I would have went with them but I wanted to skype my parents.

Offer Details

Microsoft said not to disclose the exact details. What I will say is that it is high, as in rivalling the introductory full time offer territory. The offer should be equivalent or superior to Google’s. The base monthly salary should be similar but Microsoft subsidizes housing. I also checked with a friend who got a SDET internship that the offer does not discriminate between development and testing. I do not know the Project Manager Intern’s offer was different.

One thing to note is the contract contains a non-compete clause: I cannot work on any software that competes with any of Microsoft’s products for six months after the internship. In a nice aspect the contract does allow personal projects provided they are unrelated to my Microsoft work.

Final Thoughts

I am very excited for this summer.

That Microsoft has no problem with my Linux heavy experience is impressive. I hope this means Microsoft has changed and is not the insular monolith I used to hear about. One of the candidates with an offer even wore his Google backpack from his last summer’s internship for the interview, and no chairs were thrown at him!

Update 2013-10: If you are still interested please consider reading through the overview of my internship.

My Microsoft internship university campus interview experience

Following on from the recruiting event I mentioned Microsoft emailed me for an on campus interview. Thus I had succeed on the resume screening and my next challenge was a half hour in-person interview.

Microsoft flew in two engineers for two days of interviews. We were able to schedule our own interviews through a webapp. Four hours after the interview invitation email I logged into the app and saw only ~5 interview slots blocked off. Since there was capacity for ~48 interviews  I had my pick of the prime timeslots.

Worrying over meta interview tactics is distracting yet fun. When is the optimal time to interview? Right after lunch? Definitely not later in the day, but could you interview too early?

After thinking on it for 10 seconds I picked the very FIRST slot on the first day. The decision became much easier when I realized earlier meant less waiting.

The early timeslot also gave me the chance to arrive 30 minutes early, meet the interviewer, and help setup the interview room. With blatant disregard to notions such as “fairness” I also extracted extra interview time with a 10 minute early start.

In my defence I really like interviewing. I also like exams and interviews are like my favourite kind of exam. You go in with nothing to fall back on and you must think your way to the answer. I can only assume this is not a common attitude since my classmates insist on spoiling the fun by studying before exams. Of course Software Engineering wise this attitude would lead to disasterious code duplication and sub-optimal algorithms so I reserve it to exams and interviews.

Interviewer wise the engineer started by classifying my experience and preference: “Configuration-less printing” + “Low & Medium level Systems”. The low level systems might be a bit to generous. When I mentioned my preference he gave me the distinct impression he expected a more popular Microsoft project. I can only imagine how many times people have asked for the Xbox team or The New New thing.

Next he asked a super common open ended question. Every recruiter I had talked to so far had mentioned how “passion” was very important, and this was the question where he want to see it. In anticipation I had a very passionate tale about a yet-announced personal project. This project includes a custom designed algorithm and cool web technologies so it was perfect for the question.

After this came a code design question, take a sub-optimal situation and design the best hacked together work around. The hypothetical situation involved lists. Out of my three interviewing experiences two have featured linked lists. I love this since I spent half a summer using linked lists in libjtapi. Yet I cannot help but worry I’m being mollycoddled, where are the difficult tree and graph problems I’ve been worrying over? My pet theory is that the interviews so far have not been comfortable evaluating C code so they stick to simple problems for their own sake.

Once we agreed on a semi-optimal solution he asked me to code it up. This was uneventful, C is my most favoritist language so I wrote it top to bottom without any syntax errors. We discussed an error case I wasn’t checking for.  I prefer things to segfault if the calling function acts silly and passes in a NULL parameter, no risk of someone ignoring an error code. NULL pointers are not something that tend to occur at run time. If you are calling with a NULL pointer it is because you messed up, hiding that is dangerous. Of course I didn’t mention this since we had no time to explore the justification.

This brought the interview to an end, time really does fly when you are enjoying yourself. I thanked him and headed to class.

Overall I though it went well, no further interviews yet but its only been a week.

Update 2012-10-22: I got the next interview set, the in Redmond ones!

Update 2013-10: If you are still interested please consider reading through the overview of my internship.