Ujjwal Raizada - PPO at Uber

Ujjwal Raizada is a 2017 batch CSE student. He was one of the few students to have secured a summer internship as well as a pre-placement offer with Uber, a ubiquitous taxi-hailing service. 4 students were selected for software engineering intern out of which 3 got a PPO. He has also served as the president of CRUx, the coding club of BPHC.

Q. To start off, could you introduce yourself giving us some details about your branch, year and summer internship?

I'm from the 2017 batch and my branch is Computer Science. My profile is mainly IT. I applied for Uber, DE Shaw and Arcesium. And l qualified for the interview process of all three. But I was allowed to sit for only DE Shaw and Uber because they were the first two and the placement division said that if I wasn't selected in these two then I could sit for the others. Uber had three rounds in their interview. The first was a DSA based interview round. They gave me a question: it was a DP plus binary search. The second round was more centered around object-oriented development. And so they gave a real-life problem, which was object-oriented and involved something along the line of modelling classes. 

Q. Could you give us some details about the stipend and how much time you spent working for your SI at Uber? How many other students were selected with you for the internship?

Uber selected four students from our campus for the SI. It was an eight-week long internship, with a stipend of 1.6 L per month. And I primarily worked on the back end of Uber. The working hours are not rigid. You basically have to complete a specific portion of work every two days. You can complete it as per your schedule and then report to your mentor. You will then have a call with the mentor, where you can discuss your progress and other specifics. So you don't have a strict schedule where you need to work from nine to five. You can work on your own terms. You just need to complete the work assigned. There's complete flexibility.

Q. How many students who got selected for the SI ended up bagging PPOs?What was your position at Uber during your SI, the role you played?

Three of us got PPO. It was the role of a software engineer, intern.

Q. What was the project you worked on at Uber?

My project was actually a distributed anomaly detection system, I will briefly explain what it was. There are many services running in a system in an Uber infrastructure, but it is possible that some service starts malfunctioning. It doesn't stop outright, but it is just malfunctioning. There are so many services and one cannot just manually keep checking if everything is working fine. So what a detection system does is it keeps a track of each of the services and if it detects some anomaly it reports the same to the team, so that we don't have to manually monitor. An automated message will be generated, and then you can check what the problem is. 

Q. Can you tell us your experience with the interview you had to give to get this SI?

I feel Uber is one of those companies which doesn't focus on your resume. They mostly focus on problem-solving skills and your data structures and algorithms knowledge. The problem-solving part revolves around competitive programming. There were four rounds in total (I said 3 earlier, my bad). First was an online round. There were three questions. They were all purely competitive coding based. You need good hands-on experience in competitive coding to clear that, only theoretical knowledge of DSA won't help you there. And because they do not have any branch cutoff or CG cutoff, there are a lot of people who are eligible. After that, there were three interviews. At Uber, they don't ask questions from GeeksforGeeks or similar platforms, they have new questions every time. So you should have good problem-solving skills.

Q. When did you start preparing for your SI interviews and how much time and effort would you ideally advise for the same? What were the resources did you use to prepare for your interview process?

I mostly prepared during the summers after my second year, during PS1. My PS1 was in my home city, so it wasn't very hectic. My PS station was the Board of Revenue. It was a government PS station. Since I was living at my house and working from my hometown, I didn't have to worry too much about logistics. So I would say, I spent nearly four or five hours a day for two entire months. And I think that would be enough. Rigorous and focused practice for two months should work. A person with a competitive programming background could probably take less time for the same.

Mostly, I did my practice on CodeForces, which is a competitive coding website. And for theoretical things, like interview questions, I used Interview Bit. For reading up on the theoretical parts, I used cp-algorithms.com. For past year problems, I used GeekCode and GeeksforGeeks.

Q. Was there any course or college material that particularly helped you in your SI, including your PS1 experience? Are there any specific courses that companies look for while hiring for internships and/or jobs?

Yes, the software engineering course. It's a disciplinary elective for computer science students. It covers almost every aspect of professional software engineering, which is really important. The course gives you good exposure to handle projects later on. Other than this, for CS students, their CDCs like DSA and OOP would be sufficient for SI interviews. For non-CS people, it would be really beneficial if they could do these courses.

Q. Could you tell us a little bit more about your profile? Your LinkedIn profile shows that you've worked on some projects? So could you give us an insight into those? How important do you feel these aspects - like projects, etc, are to build up your profile?

I was a member of CRUx and the President of the same in my third year. So I did a lot of projects there. I've done two formal projects. These two projects were mostly full-stack software development. The first was for the computer science department - for developing a portal. The second one was based on my professor's research topic - he was working on a software engineering research project, and I developed the portal for that. I did a few informal projects as well, so I had a pretty decent experience in development fields. SI was relatively easier for me because of this experience.

Projects basically give you an opportunity to talk about something you've worked on. So it gives you an upper hand in the interview, but during the internship, it really matters how much you have worked already. I don't know about other companies but Uber does expect you have to have proper development experience. 

Q. And what do you feel was the plus point that helped you get through the selection process? Both for the SI and the PPO offers?

I feel that as I was really interested in technical stuff,  it was easy for me to conduct discussions on technical topics. So during an interview, I wasn't stuck at any spot. Other than that, my PS station wasn't very strenuous. So I was able to contribute more time for my interview preparation process. I prepared for two months continuously, so I feel that helped.

For the SI to PPO conversion, I think my previous programming skills helped greatly. I had a head start as I started working on my project in two weeks which was earlier than the others. Hence, I finished it five days before the deadline.

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

CGPA doesn't play much of a role in the SI to PPO conversion. Soft skills do matter as you need to interact with many people at work on a daily basis. So if you're not able to present your views, it becomes really difficult. Technical knowledge is highly important of course. Soft skills and technical knowledge are actually coupled in an IT industry, because to communicate better, you should also have a strong technical background. I would say Uber as such doesn't give importance to CGPA over technical skills. One could say 7 is the minimum benchmark, but it's always better to have a CGPA of 8+.

Q. How did the work from home aspect of your SI affect the general nature of your job? How did you find working with your team at Uber and how big of a role did the senior colleagues there play, in guiding you?

Actually, it was very difficult in the beginning because you can't continuously approach your mentor, as he too would be working on something. There would be one or two meets per day, with the mentor. So this really affected us for at least two weeks; it was very difficult to get a head start. But once I started working on my project, and I became familiar with the Uber infrastructure, it became quite easy. It's actually very comfortable to stay at home. But I really missed the office culture.

I feel Uber has a very nice culture of maintaining a startup-like environment. They have very small teams, working on big projects. Even as an intern, I had the chance of interacting with their Indian IT head. So they take only a few people, they have very small teams and there's a very open environment.

Q. Could you tell us more about the SI to PPO conversion process? How easy would you say it is to convert an SI to a PPO?

It's a very standardized process. You would have at least two meets a week with your mentor and the mentor has to give feedback after each week to the manager. The manager has to meet you at least every second week and then has to give feedback in the midterm and the final term. So, every intern is assigned a mentor and a manager. The mentor is your first point of contact. The manager oversees your work and ensures that the mentor gives you the required assistance. After four feedbacks from your mentor and two feedbacks from the manager. Then there is something called a bar raiser concept, which is done in Uber and Amazon. The very last round is conducted by a completely new person. It would include an interview and a presentation of the project you've worked on. Then that interviewer would submit his review about your work and there's a panel that make the decision.

Compared to the placement process, getting a PPO is relatively easier. If you sit for placements, you need to prepare again for the company interviews you've applied for. In an SI, finishing your weekly goals in time should mostly get you a PPO. It's not very difficult, but at the same time, it isn't easy as the initial weeks can be tough and you need to work on catching up.

Q. How important do you think doing an SI is for a single degree student?

I think doing an SI is important, irrespective of the fact whether it would land you a PPO or not. It gives you a good hands-on experience and an edge during on-campus or even in off-campus interviews. They cannot actually verify if you have worked on the projects that you mention in the interview, but an SI acts as a formal proof of you working at the company for a solid two months.

Q. Are you planning to take up a TS or continue with PS2? 

Yeah, actually I am planning to get a thesis.  I have applied to some places to get a six-month research internship. If I do, I'll convert my PS to TS. If it doesn't work out I'll go on with PS2.

Q. Do you have any suggestions for your juniors who are now preparing for the SI cycle this year or those who would be appearing for it the next year?

I will speak about IT profiles. Have a strong hold on DSA and Competitive Programming. In-depth knowledge of OOP is very important. Always include a project that you've worked on and never fake it as it's really easy for the interviewer to know if you've faked it. If you just have one or two, include those only. 

Q. You were the president of CRUx in 2019. Do you feel that the projects that you undertook there and the tenure you served as president gave you some useful insights for your SI at Uber?

The projects I did there helped quite a bit. Being the president helped me in improving my soft skills and discussing technical details. I had conducted various workshops as a member of CRUx as well, so it was very easy for me to discuss technical aspects with my mentor and manager.

Q. What tips and advice would you like to share for students who wish to venture into the world of coding and competitive programming?

Start slow. Generally, people start with CodeForces and start giving contests and eventually get demotivated. I'd advise them to start slow. Just give two or three weeks to get accustomed to the system because it would be a completely new thing and it's highly competitive. So it's very easy to get demotivated. And once you get a knack of what's going on and how things work, then you can get competitive and start giving contests and solving many problems. And for practice, like I had said, for SI interviews, on CodeForces, students should be able to solve all the A and B graded problems and at least 80% of the C graded problems and a few D graded problems too if possible.

Q. And what resources do you feel a beginner should use for competitive programming? Speaking from the point of view of a complete beginner, who's really new to this and wants to try it, from where should he/she start?

Okay, if they're completely new, I think they should start with HackerRank, because it has an accompanying tutorial with every topic. You just read the tutorial and then start solving some questions and the questions there are relatively easy. So you don't have to think a lot. If you're thorough with the theory part, you can just start solving the questions. And I think students should spend at least two weeks on HackerRank before jumping to CodeForces or anything else.