Microsoft Leap Apprenticeship program (Part 2)
and my experience with application and interview process with Leap
In this article I will introduce you to Microsoft Leap Apprenticeship program. I will share my experience of going through the application and interview process. I will also provide tips for future applicants. This article is divided in two due to its length. In part one, I will explain what Leap is about and discuss eligibility requirements. In part two, I will explain application, interview process, post-selection, and problems I faced. My tips and observations come in part two.
Outline
1. About Leap Program
2. Eligibility
3. Application process
4. Interview process
5. Results and post-selection
My experience
From here onward, I will write my personal experience with the Leap program. While doing so, I will cover some details of eligibility requirements, application process and post selection steps.
About my self in short: I completed Flatiron School’s online web development program in December 2018. Before that I was an international human rights lawyer. I worked for different non-profit organizations for seven years.
I heard about the Leap program during my bootcamp period. The next application cycle opened when I was six months into my bootcamp. Usually, the Leap offers an online live Question and Answer(Q&A) session before an application deadline. These sessions are great to clarify specific situations. I attended a session and asked if I could apply while I am still studying at a coding bootcamp. The person who was answering questions did not clearly say “no”. The answer was somewhere like “it can’t hurt, go ahead and see, you don’t lose anything”. So, I did apply, and got rejected. In the rejection letter, Leap does not specify why you were rejected or offer suggestions to improve your application. So, I was not sure if my rejection was due to my ineligibility or for my qualification. The next application cycle opened when I was about to complete my bootcamp. I applied again and got rejected. Third time when I applied, I had completed my boot camp and had been with my first job for six months as a programmer. I resubmitted my application. That was an application for Cohort 16, in October 2019.
Application process
I will not go into details of each application question. However, there are three main parts: questionnaire, two essays and resume. The questions in the first section asks usual questions about your profile. The essay part includes two questions: “Why are you interested in programming?”, and “What have you done to expose yourself to programming so far?”, for each you can respond in 2500 characters. I found the second questions repetitive, because my resume should show what I have done to expose myself in to programming so far: weather it is a school I attended, a boot camp I completed, or job related experience I have. Besides, most people list programming projects on their resumes too. So, I came up with a question myself: “Why I should be accepted to the program?”. I wrote my essay on this question and pasted my response into the second questions answer box. I have also heard people got accepted when they only responded with one line answer to the essay questions.
The Leap program requires applicants to submit their resumes in Markdown format. From the Q&A session I learned that not properly formatted resume can invalidate your application. It was the first time when I heard about Markdown format. With a little help from Google and GitHub, I was able to format it. However, I was not sure it was in an acceptable format as they desire it. I think they should put some form of verification that indicates if a resume is in acceptable format in the application site.
When I resubmitted my application in the second and third time, I did not make major changes to my application and essays. Except for updating my skills set and my projects, most of the things in my application stayed the same.
Interview process
After a month from submitting my application, I got an email saying that I was accepted to Cohort 16. In person interviews were scheduled in a month just before Christmas time in 2019. I was asked to choose a preferred day and time of the interview during the day from proposed three days for two in-person interviews. I had roughly one month to prepare for a technical interview.
The Leap program conducts two technical interviews each 45 minutes long. Most interviews are conducted in-person in a location where the apprenticeship is offered (in my case, Redmond, WA). However, you can request online interview if you have a valid excuse. As far as I know, the program pays for you travel and accommodations costs associated with the in-person interview.
I chose morning interviews, so I had two back to back interviews with 15 minutes of break in between starting from 10 am. The interview was conducted at Building 111, where most Microsoft interviews take place. There is an ample parking marked for interview candidates. In the lobby, I was checked in and issued an interviewee badge. Leap administering team was there to meet the candidates. I stayed with other Leap candidates in the waiting area. I saw some candidates studying/reviewing their notes. Watching candidates reviewing algos in the last minutes while you are wandering around the lobby may make you nervous, but you should know. I think at this time you should only relax and have a positive attitude.
When the time was up, we were divided into different groups and were escorted by the Leap administering team into small interview rooms with a small table, two or three chairs and a whiteboard on the walls. We were escorted out when the first interview was completed. After 15 minutes of break, we repeated the same steps for the second interview.
At each interview, you will be interviewed with a different person. A few days before the interview, the Leap team emailed me with information about my interviewers. I looked up their names on the web. I thought it is important to know what product team they are from and what technologies they use. My understanding was that usually a manager/managing engineer or senior engineer from the team that is interested in sponsoring you interviews you. When I posed this question to the Leap administers, they said it was not always the case. Anyway, I looked up my interviewers, and found out their team, building, some technologies they work.
The Leap program says only easy to medium technical questions asked during interviews, and they provide some guidance for what to prepare: basic data structures, such as linked links, binary trees, etc. and basic algorithms. I also looked up technical questions asked in previous interviews in Glassdoor, where people can anonymously report interview questions asked. Glassdoor reported the same basic data structure and algorithm problems. I studied for about two hours every other day for a month for the technical interview.
You might be wandering how I define “easy” or “medium” in technical interview problems. In this article, when I talk about technical interview problems, I rank them by LeetCode standards.
During the interview, I was asked basic data structure questions. I was given a choice to write my code in any language. I was also frequently stopped during my explanation and asked “how about this scenario “and “what if”s. My first interviewer also asked questions about Kusto (Azure Data Explorer) query language that I use at my current work, which is somehow like SQL. I was a bit surprised by this, but in a retrospect, it makes sense. The team may have been interested in my application because I have Kusto skills. The second interviewer asked an ethical question after technical questions. I found it hard to think what he as an individual wanted to hear or Microsoft as a big tech preferred to side with. I explained what two opposing groups think in the matter but did not tell what side I would lean to. My interviewer pressed to know what I would personally do in the matter. So, I reluctantly gave my answer, but was not sure if it helped me or not. At the end I asked why he asked such question, and my interviewer responded saying that at some point you have to make major decisions at work and he wanted to know how I would handle it.
Another cohort application opened before Cohort 16’s interview results were announced. On the Leap program’s LinkedIn page, it said Cohort 16 applicants who are waiting for interview results can apply too. So resubmitted my application to the Cohort 17 just in case.
After a month, I got an email saying unfortunately I was not accepted to Cohort 16, but fortunately I was listed to interview again with cohort 17. When I asked why I was selected again to interview, the Leap program administers told me that was because they believed I was a strong candidate, and they wanted to give me another chance. Again, after a month, I was scheduled two interviews. Again, I looked up my interviewers. Again, they were not from Microsoft product teams (like Outlook or Xbox), but were from Microsoft core functions teams (like finance or legal) located in Millennium campus in Redmond. In preparation for my interview, I trained about two hours every day for a month.
Again, technical questions were on basic data structure and algorithms. I thoroughly explained and implemented the questions with several “if” scenarios. I stumbled on the second questions of my first interviewer. I could not recall anything relevant to the question, but I spoke out loud any ideas came up to me. Then he explained what it meant, and it hit me. Shockingly, I knew the concept, but I just could not recall it on time. It was obvious to me that my inability to recall was due to my lack of programming experience in production. If have developed in production, of course I had to deal with it and might have answered properly on time. But at my current job, we deal with similar concept from SQL side. I offered to explain a similar concept and process in SQL and explained them in detail. Toward the end, he asked about my thoughts on latest trends in technology. Overall, I think I did well, and had a pleasant experience.
My second interviewer was a younger guy who was a senior engineer in his team. Instead of jumping to question, we had a nice conversation in the first half of the interview. We both spoke Japanese, we both lived in Japan, he was planning to go to the Tokyo Olympics etc. Then we moved to coding part and he asked to improve an existing implementation of a data structure. This time I worked from his laptop. I was able to improve it considerably, except I neglected removing one redundant line of code. This interview was very relaxing and conversational. The technical problem part of the interview felt like pair programming.
Results and Post-selection process
Roughly one month after my interview, Leap announced results, and I was accepted with the Cohort 17. Documentation work and background check started within a few days. A week later, I attended an orientation session in Bellevue, WA where we met other apprentices and program administers, and went through program details and expectations. We also had some documentation work done there. Online, we were added to Leap Teams channel where we had access to resources, alumni groups etc.
When the program started in March, we were supposed to go through one month of intensive training in class. It would include programming in C#, GitHub, Agile methodology and similar things. The training would be carried out in Building 25 in Redmond. After that, apprentices would spread out into their sponsoring teams to do their apprenticeship for three months.
Contractors vs Non-Contractor
The Leap program is not part of Microsoft. It is an independent organization that partners with Microsoft and other big tech. To implement the recruiting process and handle legal side of employment process, they rely on third party recruiting companies. I have noticed that my earlier application communication came from different recruiting company. But the Cohort 16 and 17 were administered by Aerotek. Third party companies like Aerotek handle the apprenticeship process as a short-term contractor to Microsoft.
I will explain my understanding of different types of employment at Microsoft. Exact details and terms may not be correct. Basically, Microsoft has full time employees (FTEs) and contractors. FTEs are given a blue badge and contractors are given an orange badge. All non-FTEs are given v- alias (pronounced as v dash), so they are usually identified with v-. Types of employment under contractors has a long list. I will explain two main groups: individual contractor and contractor through a vendor company. Individual contractor is someone directly hired by Microsoft but works as an independent contractor (without benefits). Microsoft also outsources other companies, who serve Microsoft on customer-client basis. Contractors can be located anywhere, but they can also work with FTEs side-by-side in main Microsoft campuses. There is a whole debate about big tech companies full time and contractor employments. It costs less to Microsoft to outsource, but some argue contractors who may do hard work may not get a good treatment. New regulations put contractors more into disadvantage. After certain time (18 months) working as an independent contractor, one must take a six-month break before joining Microsoft as a contractor again. If you are a contractor through you company (meaning that your company is a Microsoft vendor, and you directly do Microsoft project work and you’re your compensation and benefits come from your company), it seems like the 18 months period does not apply to you. However, if you move to another job with a Microsoft project or any other type of Microsoft contractor role, you must take a break for six months. You can read about it more here.
For my part, everything was going well, except one morning I received a call from Leap administering team saying that there might be a problem in my onboarding process. It turns out I cannot join LEAP as a contractor to Microsoft through Aerotek because I happen to work at a vendor company in a Microsoft project. I remember reading the Leap program website where it stated that internal applicants were disqualified. My understanding was that it referred to individual contractors. The program administers say it had happened before, and they did clarify the eligibility requirements on the website. However, for me it seems it was not clarified well enough. You do not really understand such details of contractor rules unless you work as a contractor and face an issue. In my opinion, they should have phrased it as “anyone currently holding v- disqualified to apply”. I see now that the Leap program has updated its website and the below requirement clarifies it.
Applicants cannot have been employed as a vendor or full-time employee for Microsoft Corporation within the past seven months.
My impression is that Aerotek staff was not well versed in such rule either. When I went to interview, I told them I probably did not need a guest badge to access the building, because I had an orange badge. When I went for the orientation, I told the Aerotek staff who was managing the project that I worked in Microsoft project in Redmond campus. No one raised red flags. It only became clear when Microsoft refused to process my paperwork. This was all in my humble opinion, but also note this is only my side of the story.
I also clarified with Microsoft outsourcing staff my situation, and they confirmed that I needed to take a break if I wanted to continue with Leap. Aerotek offered help with finding another job if I wanted to take a break from my current job, and I could re-apply for Leap again. But I would miss cohort 17, and direct placement in the next cohort was not guaranteed. I would have to go through the application and interview process again. I decided not to pursue Leap, so my journey with Leap ended a week before my apprenticeship began. Unfortunately, Washington state official quarantine started in the first week into the apprenticeship, and everyone moved to a remote work. I am not sure how doing the Leap apprenticeship remotely was different this time.
Tips for future applicants:
· The website address of the program used to be industryexplorers.com. But now I see it has changed to https://www.microsoft.com/en-us/Leap/. I am not sure what it implies to though.
· Apply as soon as you think you are eligible to apply.
· Give more information about yourself in your essay. This is their only chance for them to hear about you.
· Attend live Q&A, even if you are planning to apply in the future.
· Follow the Leap LinkedIn page.
· Find out Leap alumni and ask about their experience.
· Focus on easy to medium data structure and algorithm problems.
· If you are comfortable, write your code in C# or one of C family languages during the interview. No need to learn C# just for the interview’s sake. This is a tip to consider only if you know C# well or if you are wandering what language to practice your algos in. I say this because Microsoft is dominantly C#. One of my interviewers told me to code in any language, and when I started writing in JavaScript, he was taken aback a bit.
· If you are interviewer is late for the interview, do not worry, it will not work against you. One of my interviewers in the second round were late for 15 minutes, and I had only 30 minutes of interview. Despite this, I was accepted.
· Once you get accepted, focus on learning/improving your C# and Microsoft stack (and your sponsoring team’s stack) skills to put your self ahead of the crowd.
My random observations:
· The program receives more applications after each cohort. During my latest application, it received more than thousand applicants. Only about 100 among them were selected to interview. Less than 50% of candidate who go through interview get accepted. It is getting competitive.
· All my four interviewers were male.
· Not every apprentice gets a job immediately after the program. I did not say a job at Microsoft, but a job in the industry. I met a LEAP graduate who had been looking for a job for a several months after the program.
· Overall, the LEAP program is a great opportunity.