My internship experience at Microsoft Redmond and getting an offer


a reprint of the article "" Each year, Microsoft receives 2 million CV "Developer Minsk -. of 7-year-old way in the company (+ Guidelines and a list of books)" site dev.by .

Andrey Artemyev - Software Development Engineer at the Microsoft US office in Seattle, working on the Windows operating system. His path to the company took 7 years, with five resume submissions, one failed interview and a summer internship at Microsoft Redmond. Andrey shares his experience with dev.by readers.

“My experience is that perseverance, not talent, wins over a wide interval”


Getting into Microsoft is hard enough, because hiring the wrong person can be expensive for the company. This includes not only the costs of relocating, but also the potential damage to the company from employee errors that lead to unpleasant consequences, whether it is the theft by Russian hackers of a letter from presidential candidate Hillary Clinton, the spread of the Petya ransomware virus, and the fall of the patient database server in a Japanese hospital or failure of a $ 19 million contract with a laptop manufacturer.

Microsoft annually receives about 2 million resumes, so any doubt about the candidate entails rejection. Failure during the final interview means that the next attempt will be only after 6 months, but in fact - only after a year. My experience is that perseverance, not talent, wins over a wide interval.

It all started in December 2008, when I, a third-year student at BSUIR (Belarusian State University of Informatics and Radio Electronics), came to a lecture on MS HPC Server 2008, organized in Minsk by Microsoft employee Vsevolod Ukrainsky. In a lecture, he mentioned summer internships for students at the company's headquarters in the United States.

It was incomprehensible to the mind, a purpose and meaning appeared in my life - I have to go to Microsoft. I immediately sent my resume (I need to submit it here ), and although I did not receive an answer, I was not upset: already at that moment I realized that all the great achievements required preparation.

Since January, I have completely immersed myself in the process of collecting information and preparing. I found Sergey Grebnov’s blog from Ivanovo (RF), who had just returned from a summer internship at Microsoft from the USA and asked to tell more about this experience, so he got a series of posts about the interview process and interview tasks. In the course of how the content of the interview was clarified, the work began to boil, and I regretted that there was only 24 hours in a day. My classmates did not understand this.

To get started, your resume should be noticed. If you have passed this stage, in September – October you will have a telephone interview lasting 30 minutes in English, which will weed out those who definitely won’t pass the final interview with the Americans in the European office. In the second round there will be four to five interviews of forty-five minutes each, during which you will be offered algorithmic problems, asked how you are going to test your solution, and look at your code and approaches to solving problems. Sergey Grebnov was the winner of the programming Olympiads, the finalist of the Microsoft Imagine Cup 2008, but he did not go the first time either.

“In an interview, you need to be sincerely interested in how you can improve yourself, and not just perform a ritual.”


I don’t put the word “preparation” in the sense that they give it to the university — to memorize in a couple of days, write spurs, work out a teacher, cheat. If you were warned that during the interview you need to ask the interviewer for feedback, then you need to be sincerely interested in how you can improve yourself, and not just perform the ritual.

From the behavior of the interviewers, you must understand who they are looking for and make yourself like that. To prepare is to develop the skills and habits in yourself, for the demonstration of which you will not have to strain your memory. Perhaps it will take six months, perhaps several years. The boxer in the ring does not remember how to put the block, and does not think where to dodge - these skills are worked out. On the day of the interview everything should go flawlessly, all questions should be answered and all tasks solved, only this way you will get into the “big league”.

I learned English by reading technical literature, watching cartoons Futurama, The Simpsons, South Park. I reviewed many episodes about forty times, wrote down new words with translation and transcription in a notebook and stupidly re-read when traveling in public transport. Foreign language courses, in my opinion, are useless: I studied German like that, and it seemed to me that their goal was not to teach, but to make money.

A telephone interview was simple: I was asked something about Linked Lists and work experience. In an interview, not only the company gets to know you, but you get to know it, so it is very important to prepare questions. I was interested in the person on the other end of the line, what they are working on, how often overtime occurs, how good a balance is between work and personal life, what are the plans for interns, etc. Lack of interest in a future job may not play in favor of the candidate. After a while, I found out that the first stage has been passed and will be contacted again soon.

Rainy Minsk autumn gave way to winter cold. In mid-February 2010, I received a letter inviting me to come to Munich for an interview on the company's campus. 4 interviews of 45 minutes were waiting for me, Microsoft paid all the expenses. Less than a month was left before the appointed day, and I did not have a visa. I had to run, because to get a German (non-Schengen) visa, I needed an extract from the land registry about Microsoft Deutschland Gmbh.

In general, the hiring process at Microsoft is quite “sloppy”, and I think not only me. Sometimes recruiters forget to send documents or send the wrong ones without a signature, or simply leave candidates little time to collect documents. It is believed that this is done on purpose in order to weed out candidates, but maybe just the human resources department cannot cope with a huge stream of candidates. So do not relax, follow the whole process yourself and do not be afraid to write to them.

Microsoft very often conducts interviews in EU offices, where a team of recruiters from the United States comes. Grebnov had it in Warsaw, I had it in Munich. Sometimes similar events are also held in Russia, once a hiring event was at BSU (Belarusian State University). An interview in a foreign country is bad because you need to adapt to a new environment, an unfamiliar public transport system, this adds risks. I arrived an hour before the interview and just walked nearby. Then the four of us with the other candidates gathered in the lobby, and we were invited one by one to different interviewers.

“The most stupid mistake is to start writing code without specifying all the details”


At the first interview I was asked about my work experience, then I was given a leaflet on which the C ++ class CString was implemented, the task is to find all the problems. Since I read Effective C ++ and More Effective C ++, I succeeded.

The next task was more difficult: to implement the bool IsMatch function (char * pszText, char * pszPattern). A string is passed as a pattern, which may contain *, denoting 0 or more characters. I did not solve this problem. When you decide, consider these options: "Abcde", "A * c ** d * ek."

In the second interview, the task was to implement a function that flips all the words in a line. For example, "Hello, Microsoft Deutchland!" - "Deutchsland Microsoft Hello." The task may seem simple, but in fact it is not. The most stupid mistake at the interview is to start writing code without specifying all the details. To select a solution, you must have accurate data that should be taken from the interviewer. We need to clarify what to do with punctuation marks, whether Unicode support is needed, because there are several characters (for example, emoticons with different skin colors), how big the file is, what time / memory restrictions are. It is also necessary to explain the choice of algorithm and the choice of data structure. At the end of the interview, they asked me how I would test this code, I answered poorly, and that was the end of it for me.

I returned to Minsk with the firm intention to prepare better next time. I didn’t tell anyone at the university, even the headman didn’t know why I was absent. Immediately he sent scans of checks for food and public transport to Microsoft, and FedEx responded by sending a check for $ 215, from which he had to pay income tax. Accommodation and flight have already been paid by the company.

In the fall, I again filed my resume, but flew by. According to the requirements of the J-1 visa (student visa required for an internship in the USA), at the time of the end of the internship you must be a university student, and in 2011 I already graduated from the university.

In case of failure, I had Plan B, so I continued to work. From time to time I solved problems and lost situations from an interview in my head. The process of preparation went into the background: I read books on programming, but there was no past fuse. Germany did not give me rest, so I sent the documents to the Master of Informatics at the Technical University of Munich. They didn’t.

Preparation continued, sometimes I solved problems and tested the code. In the fall, he again applied to three different universities, and this time received positive answers from all at once. The Technical University of Munich was at the top of the list (37th in the world), so I chose it. So in April 2012, I became a student at a German university. Later I was disappointed in him.

“It's dark outside the window, I stand with a marker in front of a paper board and implement the Minesweeper game in C ++”


At the end of August, already from Munich, I again applied for an internship at Microsoft, and I was invited to the first stage. He was at my university. I arrived 20 minutes before the start, several people were sitting under the door. One of them turned out to be a recruiter, and we talked for about 15 minutes: I asked questions about the company that I had prepared in advance.

At the interview, I needed to write a console C # application on the board, which considers the number of characters in the file and prints them in descending order. When you do, think about compound Unicode characters, formatting characters and invisible characters (space), and what to consider the same characters, because in some languages ​​they may look different, but mean the same thing. During such interviews, specialists who do not reach the minimum level are eliminated. The interviewer evaluates how I write the code, how I reason, how I approach the solution of the problem. About a week later I was notified that I had passed the first stage.

In February 2013, I was invited to an interview on campus in Zurich, giving me a choice of several dates. In mid-March, two guys from Poland gathered in a Microsoft lobby in Zurich, an Indian student in Switzerland, and me. Everything was the same as in 2010 - four interviews of 45 minutes each.

In the first interview, a Microsoft manager asked me to write some LinkedList algorithms, one of which was finding a ring in the SingleLinked List. I don’t remember other technical issues, but Linked Lists are used everywhere in the operating system, so you need to know them well. Then the interviewer asked if I had questions for him. I asked everyone about the internship, about the team and the working environment - it was interesting to me.

The second interview was with a Russian Microsoft employee. I don’t remember what we were doing, but in the end he gave me 7 minutes to implement the algorithm in C #. I immediately turned on the stopwatch on the watch (which upset his plan) and was thus able to focus on solving the problem. As a result, I wrote everything on time. The interlocutor asked me if I want to work with Windows Phone or SQL Server. I remember returning from this interview to the conference room, I saw an Indian guy with things near the elevator - the rest of the guys were still at the interviews.

With the third interviewer, I did not immediately find a common language. It was necessary to organize the sorting of cards. At first I figured out how best to represent the cards in memory, as a result the task was reduced to rearranging the elements in the array. Then the recruiter added the condition that the cards should never remain in their place. I implemented the algorithm in C ++. Before writing the code, I clarified whether it is possible to use a standard pseudo-random number generator.

The fourth interview. It’s dark outside, I stand with a marker in front of a paper board and implement the Minesweeper game in C ++. Along the way, the recruiter asks how much the array of pointers to pointers takes and how you can repeat the for loop again, how will I implement the game if the field is huge, say, a million per million.

As a result, two of us remain, we are waiting for a final decision. In front of us is a recruiter from America sitting with a laptop, she asks who wants to know her result first. I express a desire, we go to another room, sit down, the recruiter thanks me for the attention to the Microsoft internships, expresses the hope that the experience gained was useful to me, and the joy that I will join the company in the summer of 2013.

That guy passed too. We went out at 18:30 and went to the hotel, where we celebrated the victory with two glasses of beer.

“A letter came from the embassy that the processing of my documents was delayed, since I came under Additional Processing”


The internship was supposed to begin on June 7, 2013. I returned to Germany and began to collect documents for a J1 visa. It was not time for study, she was sick. I prepared the documents very quickly, because all the necessary translations and notarization were made when I entered the German university.

On the embassy's website, it was necessary to pass a test with stupid questions, such as: are you a member of a terrorist organization, do you intend to bring drugs to the United States, etc. They need to be approached very seriously and in no case should you joke, otherwise they’ll be wrapped up. When you go to the American embassy, ​​it’s better not to take electronics with you, because there’s nowhere to store it. Someone bury their tablets and smart watches in the flowerbed, someone gives them to the scammers for storage and never sees them again, I went to the store and left my things in the storage room.

About a week later, I received a response from the embassy that the processing of my documents was delayed, since I came under Additional Processing. This is the procedure that many programmers, physicists, and explosives specialists undergo during the first application for an American visa. Thus, the consideration of my documents was delayed for a longer time than planned.

I wrote to Microsoft, and they told me that I can only wait. Every day I went to the mailbox, but it was empty. The time of my internship was postponed, I completely “scored” my studies, although exams were nearing. At that time, I rented an attic from a German family near the university, but they were preparing to move to another house. I remember that the house already had no things except mine, the rental period was coming to an end and it was necessary to make a decision. Once, on a hot Munich day, I saw a heavy envelope in a box, and in it - a passport with a visa and a bunch of papers. Microsoft immediately bought me tickets, and I flew away. Thus, the internship in Redmond began with a delay of a month.

“Typically, Microsoft interns get a job offer unless they do something stupid.”


During the internship, Microsoft provided me with a car and a discount on rental housing. The interns had enough time to not only work, but also travel.


Microsoft intern workstation

I worked on Windows Phone 8.1, added some kind of API to it (I don’t remember which one). First, it was necessary to understand the project, then draw up a design document, discuss it with other employees, get their approval, then implement and test it. At the end of a 12-week internship, I presented my project to the team and received a job offer. Most interns receive such an offer only if they don’t do something stupid.

I received an invitation to work at Microsoft in early September, but I received a blue employee card only two years later.

I traveled around America and returned to Minsk for the duration of my work visa. This is a very long process. In the United States, the number of foreign labor is quota; in recent years, the number of applicants has exceeded the number of quotas, so they are raffled off according to the lottery principle.

Outside the window in 2014, I live with my parents, I'm waiting for a visa. If everything goes well, then in the fall I will go to the USA, so you can not look for work. But in April, it became clear that this year I did not receive a visa and did not go to the States, instead there was an option to work in the Vancouver office, a three-hour drive from Seattle: after a year of working in Canada on an L1 visa, I would be transferred to Redmond. However, this option did not work out either. As a result, in the fall I went for an interview at Softeq. My experience at Microsoft and a solid knowledge of English have given me a noticeable advantage when applying for a job.

Spring 2015 quietly crept in. In April, my work visa documents were finally approved. The interview at the US Embassy in Moscow was very short: they just asked me where I would work and with what salary, they took my passport and returned the same day with a visa. All foreign employees start working in October, when the new fiscal year starts. Therefore, my first working day was on October 5, 2015.

References from Andrei Artemyev :

Literature for “physicists” that will help prepare for technical interviews. Reading from cover to cover is not necessary; I recommend that you study algorithms with a pencil in your hands.

Interviews will begin next fall next year - get ready and submit your resume. If it doesn’t work out, draw conclusions and try again.

  • Thomas Cormen. Algorithms and data structures;
  • Boris Kordemsky. Mathematical savvy;
  • Alexander Shen. Programming. Theorems and problems;
  • William Pandstone. How to move Mount Fuji.
  • A collection of programming tasks and solutions for them on topcoder.com ;
  • Cracking the Coding Interview: 150 Programming Interview Questions and Answers;
  • Microsoft Interview Questions at glassdoor.com ;
  • Effective C ++;
  • More Effective C ++;
  • Programming Pearls;
  • Microsoft page on FB to keep abreast of events

Motivational literature for the "lyrics":

  • M. Weller. The Adventures of Major Zvyagin;
  • A. Schwarzenegger. Remember everything. My incredibly true story;
  • M. Sharapova. Unstoppable. My life;
  • Malcolm Gladwell. 10,000 hours;
  • C. Lengold. Just space: a workshop on Agile life, filled with meaning and energy;
  • Timothy Ferris How to work 4 hours a week.

ps addition to the article from the author : if I planned to go on an internship again, I would submit a resume immediately to all large companies. Almost everyone has internships - Microsoft, Google, Amazon, Facebook, Intel, Apple and the rest. In addition to internships in the US, there are internships at European offices. Europe does not have such strict visa requirements as the United States. There are internships at Microsoft Research for people engaged in science.

All Articles