Harivallabha Rangarajan - PPO at Microsoft

Q1. Could you please introduce yourself and describe your SI? (branch, year, where you did SI, stipend, the time you spent working there, how many other people were selected, how many got PPO)

A1. I’m from the 2016 batch, and I’m a final year MSc Maths + BE Computer Science student. I worked as a Software Engineering Intern at Microsoft in May at the end of my 4th year summer. The stipend was 80K, which rounded off to 72K after tax deductions. Forty-two people were selected for the internship for the software engineering role. I think there were some data science roles as well. But I think for our university, they hired only for software engineering roles. From 42, I think around 27-28 got PPOs. So, this year, it was a bit less because of the COVID situation. Because as far as I know, last year, except for 3-4 people, everybody got a PPO. This year, we had exit interviews and stuff which hadn’t happened over the previous 3-4 years, which were sprung upon us at the last moment.

Q2. Tell us about the selection process, the testing process, and the interview you had for getting your SI?

A2. There were five rounds in total. The first round was an online coding test, which you take from your room. We had three problems to solve in 2 hours. About 90 people got through the online coding. And after that, we had the written round in the PSD. The written round also had a competitive coding question.

After that, there were two technical rounds for most people and one HR round. They fast-tracked the 2nd technical round - we had just one technical round, but most people had two rounds. Again, the technical rounds, you mostly had DSA questions and a few questions about your resume and few OOPS or DBMS questions. One week before the interviews, I did a few disjoint set union questions. And luckily, I got two questions on them in different interviews. Finally, in the HR round, the usual stuff about where you see yourself in five years and your technology passion were asked. Microsoft came to campus on August 27-28. I started my preparations a month before that. There is one brilliant link on Quora, which has some 500 data structures and algorithms and links to a few questions on techie delight. (https://www.quora.com/q/techiedelight/500-Data-Structures-and-Algorithms-interview-questions-and-their-solutions). 

I used to brush up on my data structures and algorithms. I went through our DSA, OOPS, and DBMS courses once again. And then I solved a few problems on Codeforces up to C level questions. If you solve only up to C questions, it is enough because they don’t ask D-F question levels in these interviews. Apart from that, I read up on some System Design questions, that is something that you don't cover in your courses. You have to read up for that specifically. They asked me to design the Pinterest login system and the Pinterest dashboard in one of the technical rounds, so you need to read up on system design specifications. For system design questions. I think you can look at Interviewbit. LeetCode is also fantastic for doing some competitive coding problems in the last month or so. Apart from that, you have to lay down your portfolio into a nice resume based on the projects that you've done so far.

Q3. What were the courses (and other college-related resources) which helped you with the process? Were there any courses that companies look at extensively while selecting people?

A3. I would say, for any of these companies, DSA, OOPS, DBMS is critical. Direct questions are asked from these. Apart from that, in general, OS is very important. But we wouldn't have done OS by the time these companies come for internships so they won't ask us about it. You can use the Java Complete Reference book for revising all the Java-centric topics they can ask.

Q4. What specific work were you doing at Microsoft? And what was your project about?

A4. Office Lens is a document scanning app, much like CamScanner. My project was broadly on computer vision and image segmentation for Office Lens. I was part of this team called scan fundamentals. I implemented and deployed 4-5 image segmentation algorithms. Once you enter the industry, you will notice that in these data science jobs, there's a lot of data engineering that you have to do, something that you won’t encounter in research because there, you have a lot of standard data sets and techniques to process these data sets. Suppose anyone is looking out for ML or DL roles. In that case, Microsoft has positions such as these, which would be a fantastic start to a promising career. Because once you’ve worked here for a couple of years, you’d have gained excellent expertise in deploying these models on the app for billions of users and be able to scale it up, and you'd have gained valuable experiences.

Q5. How did the WFH aspect of your SI affect the general nature of the job?

A5. It made everything significantly harder. I think initially, just communicating stuff was hard. We had daily Scrum calls to discuss progress every day. So that was nice, but still sharing what I was doing and all of those aspects was really hard. And, I think after a point of time, you start missing the physical connection with the mentors and the people working with you.

Secondly, I think because of all this remote work, all of your timelines get messed up. I used to get calls from my mentor at 9 PM in the night and used to say, finish this and stuff. And we had a scrum call the next day at 10 am. So that was terrible.

So the important thing here is that you communicate whatever you're doing really, really well because one of the problems with taking up a lot of these machine learning problem statements is that many of these in the industry are experimental, your mentors may not know this stuff properly. So you're going to be experimenting through a lot of different things. Therefore, you need to be able to document all your failures well, explain them, and say, this is what I tried, and justify why it's not working. Because otherwise, it looks as though you just haven't done anything.

Q6. How did you find working with your team at Microsoft, and how big of a role did the senior colleagues play in guiding you?

A6. They played a significant role in that. I would certainly recommend such a position to everyone who wants to do ML/DL in the industry. This is exactly what you will be doing in the industry. They are very open to new situations, very open to new ideas. And you can easily participate in the process.

But I think in terms of direct technical assistance, you wouldn't have that much help. In general, they facilitate you for the sensitivity of your setup and similar things. And secondly, you get a good role in the decision-making process as well. So, from the very beginning, they didn't say, these are the algorithms that we want to use, and this is what you have to use. It was more of a democratic process in that sense. They weren’t rigid or uptight.

Q7. Could you tell us more about the SI-PPO conversion process?

A7. This year, Microsoft conducted exit interviews, which didn't happen in the past few years, which was really surprising because we were only informed in the last week. They didn't give us any hint at the beginning of the internship. Around July 18-19, they told us that we’d be having one, two, or three interviews. And the prerequisite for the interviews was that the manager had to recommend you for review. So if your manager recommended you as a “strong hire,” you get just one interview, and if you do reasonably well in that, you get the PPO. If the manager recommends you as a “hire,” you get two interviews. And if the manager says “no hire,” you’re not going to have an interview at all.

For the interviews, they asked me about my project, what I want to do in the future, and some general HR questions to see if I could fit in with Microsoft company culture. And they asked me DSA questions as well. It was grilling because I had like 30 minutes to solve an excellent computational geometry problem and to explain the algorithm. And I was informed of my interview time only three hours before the interview.

And apart from that, there are three things called the “Connects.” You have to fill three connections throughout the internship -there's a starting connect, a midway Connect, and a final connect. They involve documenting what you have done in three different phases of 10-15 days.

Up until last year, they gave the PPO results before the last day of the internship. For us, they released the PPO results a month after the interviews.

Q8. How heavily do you weigh the role of soft-skills, CGPA, and technical skills, in your SI process and the SI to PPO conversion?

A8. Technical skills are the most important. For any CS role, it’s essential to have a portfolio of projects. I don’t think the CGPA matters at all. Because once I went in, nobody ever asked me about any of my grades or any courses. In the SI-PPO conversion too, it doesn’t matter- I know people with 9+ CGPA who didn’t get the convert, and I know people with 7.5 CGPA who easily got the convert.

For getting the SI, I don’t think your soft skills matter a lot because your questions will be primarily technical in nature. But, in the SI-PPO conversion, soft skills are extremely important. You should be able to communicate your thought process effectively in your work. So, 60-65% Technical skills, 30% Soft skills, 5% CGPA, portfolio, and stuff.

Q9. Were you confused about taking up a summer intern at some point, given the fact that you won't get an opportunity to go for a double PS like most of the dualites do?

A9. No, I didn’t think about it that much. Because no matter what you want to do, going for the summer internship is the better option because it always helps to have the PPO offer in the bag before you start doing anything else. If not for anything else, it gives you a year of freedom to pursue whatever you wanted. It could be anything from playing cricket all day to hanging out with your girlfriend to doing combinatorial optimization.

I think having a PPO in the bag at the start of your final year makes a huge difference instead of working for six months and then converting it. So, I’d say go for the summer internship if you get a good company. In our case, we got lucky since we could do the summer internship and double PS. You can even work on a corporate thesis if you want industry experience for the entire year as well. It's relatively easy to get a corporate thesis at a good place if you have already interned in a good place over the summer.I think it's easier to have the PPO tension in the back of your mind for a couple of months during the summer than for six months when you go for a PS.

Q10. Can you tell us about your GSoC stint? How did you prepare for it? What was your company and what was the project about?

A10. I was working with this organization called Python Monte Carlo 3 or PyMC3. It comes under the NumFOCUS umbrella in GSoC. My problem statement was to write a module for Dirichlet processes. So I had to implement different transformations such as the Stick-Breaking Transformation, Chinese Restaurant Process (CRP), etc.

Q11. Do you have any suggestions for your juniors who are appearing for the SI cycle this year or would be appearing for it in a year from now? 

A11. Practice competitive coding from the usual resources like CodeForces, LeetCode, etc. Don't shy away from applying to any company. Just write all the exams. Even if you have something specific in mind, make sure that you write all the other tests as well, because they are very good warmups. And after each test, come back to solve all their problems, they may figure in future SI tests.

Q12. Do you have any advice for juniors, related or not to academics?

A12. This is probably going to be the best time of your life to explore different interests and the best time for you to see if you really want to get into tech or if you want to do some sort of product management or consulting or finance. This is probably the best time to explore your interests and make tons of really good friends. Because I think having access to this kind of talent will be hard for you once you get out of this place. Say, you want to work on a startup idea, this is probably one of the best places to get going with that. Because once you get out of this place, if you have a startup and it doesn't have a name, if you don't have an established product, it is going to be really, really hard for you to be able to convince anybody who's good, or who's even of BPHC quality, to be able to join a startup because people here are just going to be getting Nutanix, Google, and Microsoft. Who’ll join your startup just because you're offering some equity in it? You're not going to have access to this kind of talent anymore. So make the best use of that. Make the best use of the zero attendance policy. My attendance throughout college was about 5% or so. So I think that's the best thing that happened to me. You're gonna have tons of time on your hands to do a bunch of different things. And if you're from the computer science branch in specific, this is a chance for you to get started with competitive coding, get into development, do GSoC, do research, get some corporate exposure as well. You don't need to define yourself by just one of these things.

Because usually, what I've seen in college is that those who do competitive coding don’t do GSoC; those who do GSoC don’t do competitive coding. And both of these people don't do research internships. Don’t restrict yourself that way. You'll have ample time to just try for everything. And get at least a taste of all these things.

From the non-academic side of things, I’d say this is probably a good time for you to get into a relationship. It will help you get to know yourself as a person better. This is a good chance for you to relax with your friends by trying out different sports. Those are some of the biggest things I miss about college. I can't play squash with my friends at 11 PM in the night. I can't have hot chocolate at 1 AM in the morning. I’m stuck in a room all day, just working. Those are the things I terribly miss looking back. Apart from that, if you are a first yearite, do not waste the summer after your first year. I wasted my first-year summer and never really got around to doing stuff I wanted to do.