PlaceKode with Shambhavi Shandilya placed at Google

Uthaan IIITM
19 min readJun 15, 2024

--

Uthaan, the Journalism and Recreational Club of ABV-Indian Institute of Information Technology and Management Gwalior, is here with a new edition of PlaceKode. With us, we have Shambhavi Shandilya who has interned at Google and got a Pre Placement Offer from the same company. She will be sharing her working experience there, and advise on development, problem solving and academics.

cover picture
Interview with Shambhavi ma’am

You have been a software engineering intern twice at Google, so can you share the highlights of the Interview process and the internship experience? What tips would you give juniors for acing the interviews and the internships?

So, the journey started when I received an interview invite from a recruiter at Google. I’m not quite sure why I received that, but I had been giving coding contests on Google, such as Google Kickstart, Google Code Jam, Google I/O, and others. Apart from that I had already given Google STEP online coding rounds of STEP Singapore and STEP USA, though I did not receive any results after that. I was also a part of the Google Generation Scholarship process, in which I was rejected in the final interview. So, because I was active on the Google platform for a lot of profiles, I guess that was why I was contacted for the interview invite.

After the interviews, I had around 15 days to prepare. There were 2 rounds in the interviews, both of them being purely DSA-based. In both rounds, majorly 2 questions were asked, both of medium-hard difficulty. In the first round, the question was about a tree that had some specific properties, and I had to traverse the tree in a specific way to get the results. In the second round, the question was about graphs. It mostly revolved around the Dijkstra algorithm and how to come up with the approach of the Dijkstra algorithm. It wasn’t a very basic question.

My tips for juniors when it comes to interview preparation are, firstly, when preparing for a company, do read company-specific questions and recent blogs of the company as the questions tend to repeat. Secondly, solve standard questions of all the topics. Do not leave any topic, and be prepared with standard questions. Do not solve a lot of questions, rather, solve quality questions and standard questions of all topics.

The third very important tip, which I received from one of my seniors, is that when you are preparing for an interview, speak while solving a question. This is one of the best pieces of advice that I have received from my seniors. The point is to pretend as if you are explaining it to an interviewer. And give a lot of mock interviews. I cannot stress this enough. Many people don’t give mock interviews because they are shy or scared that people might judge them, but no one is gonna judge you. You might stumble upon problems where you might not be able to provide the correct approach, but you’ll learn how to handle yourself in such situations.

As for my internship journey, It started in the summer of 2022. In my first internship, my project revolved around creating an algorithm for a specific scenario. The design doc I created revolved mostly around time complexity, space complexity, failure, constraints, and things like that because it was an algorithmic type of problem statement. The second internship was more on connecting microservices together. Each microservice had certain properties, so we had to connect them together to build a feature. My design doc revolved around creating the whole design system, more of design patterns, and stuff.

So, it was a complete and wholesome experience because I worked around creating algorithms and also got to do some extensive dev work. One word with which I could sum up both the experiences is that I am really grateful to be a part of such a big organization and see how things work there.

Some tips for acing your internship would be, firstly, do not work on a problem like a normal coding question that you have to just solve in the best time constraints or something like that. If you are even fetching something from the database, we know we do a “normal find search”, but how can you improve upon that?

The difference between a normal engineer who gets the work done and a good engineer is that a good engineer looks into the depth, goes into the ultimate basics, and has their fundamentals very clear.

This was one piece of advice I got from my mentor. When you tell these kinds of details to your host or to your manager, they will understand that you have a very good and in-depth understanding of the work you are doing. Every microservice that you are building will fail someday, so when that happens, if you have an in-depth understanding of the system that you have built, the engineers can rely upon you to fix the issue.

The second tip would be to take complete ownership of the project idea. The host will not spoon-feed you, it won’t be like the host will tell you, “I need 5 routes; create these 5 routes”. It is you who needs to push and design the complete flow of the internship. Have good communication with your host, your manager, and even with your team, try to have weekly meetings and bond with your team. If you are stuck in a blocker, don’t wait for your manager to set up meetings for you to get through it. Take the initiative yourself, even if those meetings are out of time zones, if you have to contact someone from England or someplace else, show the willingness that yes, you want this PPO and you are determined to work for it.

My third tip is a bit specific to Google, it is to understand what your hosts or managers want from you. In both of my internships, both of my managers had different expectations from me, so you have to be very clear about it. Do you want me to have a learning curve and see how much I have learned, or do you want me to complete the project? Both the times, my manager had different expectations from me, so I had to tweak my internship experience that way so that I could get a good feedback from them. Even if your manager gives you some critical feedback, you have to be ready for it. Be open to feedback, talk to your manager on how you can improve upon that instead of complaining that ”isko to kuch aata hi nahi hai”.

So you have interned for a substantial amount of time for Pingsafe as well, which is a startup. So tell us about the difference in work experience and learnings in these startups in comparison to tech giants such as Google?

Answer: Coming to the first part of the question, I have interned at Pingsafe as well and it is indeed a great place to work. The difference between the two places is that in startups you need to show results at a very fast rate. You need to make a working product or a feature in a short time. Startups have very less documented features, whereas tech giants give a lot of importance to code quality and documentation. Even in testing, startups do very little testing in comparison to the big tech giants.

The learning in both the scenarios is also very different. In startups I learned about certain tech stacks and about building a feature, about writing the code fast and delivering it, ensuring the client’s requirement, and creating an algorithm to get about it.

In Google, every decision you take needs to be conveyed to everyone present, everyone in your team. You need to document everything. Let’s say there’s a simple post request, and in the request parameters, you are adding one more key-value pair. Then you have to make a whole one-page documentation so as to explain why you are adding it, was it possible even without doing it, what are the advantages and disadvantages, and you even need to color code it and everything. So whenever a new engineer comes to take up that problem, they would know why you took that particular decision, where as in startups, “Kuch bhi bana ke bas chal jana chahiye”, only the output matters.

I have heard that in startups, people burden you a lot, but that was not the case at Pingsafe. It was very flexible in terms of how much I wanted to work and what I wanted to work on.

At Pingsafe, I also managed other interns. I was heading that, so I learned a lot of managerial skills because when you are managing people, you have to ensure that you aren’t doing the work and others are doing the work. A good manager is someone who is not doing the work but is making others do the work and dividing it among them. I was the point of contact between the CEOs and the CTOs, so it was a great experience and a good learning curve as well.

When I started interning at Google, the code-writing practice which I got by working at Pingsafe really helped me. Initially, the first code that I wrote at Pingsafe was terrible. I just wrote and pushed it. I had a debugging session with the CTO, and I was just looking at him. It was a screen-sharing, pair-programming session. He called it peer programming, but it was only him who was cleaning the code, and he cleaned 5–6 lines of code into 1 line, and I was like, “HOW IS HE DOING THIS??!” So the next time I coded another function, I just made sure that I wrote the best code he had ever seen and he wouldn’t be able to shorten it. He did shorten it again, but that is what experience is. Also while the debugging sessions were there, I understood the true meaning of readability because what code you have written, you’ll be sure to forget it in 10 days.

“Yaha pe kya likha tha, kyu likha tha nahi yaad rehta!!!”.

It is written everywhere to follow best naming practices and to follow modular programming approach, but it was at Pingsafe that I learned to implement it. It was because of these learnings only that when I went to Google, I could focus on other aspects like communication, designing, pros and cons of the decision that I am taking, etc

I obviously chose Google for moving forward. But I would suggest everyone to work in a startup at least once in a fast-paced environment. There were times when at 1 in the night I was on a call with my tech lead, and we were completing the code. If you are really passionate about coding, go for startups; it’s really fun out there.

You’ve showcased exceptional problem-solving skills, evident from your impressive LeetCode profile where you were active consistently throughout 2023, with just three days skipped in first nine months. How did you maintain such a high level of self-discipline and consistency in your coding practice?

Shambhavi ma’am’s LeetCode profile

Even those 3 days I was traveling actually (laughs). So my LeetCode journey started when I was in my first semester. When I came to college, I knew a bit about coding because I did coding in standard 10 as I was an ICSE student and they taught us Java. In 11th-12th I did not do any coding so I was very excited to be in the computer science branch. I started on HackerRank and CodeChef and though I was not giving contests I was doing good amount of problem-solving.

Then I contacted one of my fifth-year seniors. Now you can imagine fifth-year seniors they are already very proficient. So he just straight away told me that “Okay, you have done enough amount of questions. Now go to LeetCode.” At that point of time I knew nothing about it. Even though I was coding in C++, I knew nothing about vectors at that level. First semester what can you expect? I knew only loops and arrays. Max to max I knew maps, and I was very happy with that itself. Then I went to a problem which was medium level problem on binary search I never knew binary search could be that difficult. I thought binary search is just normal binary search which I knew. I still remember the question it was to find the square root of a number using binary search. What? Why do we need binary search over here? And there were vectors in question’s solutions. I got stuck and then the fear of LeetCode just came to me that okay LeetCode is something serious and so I stopped doing LeetCode. I was like there are a lot of tough questions in LeetCode and I again went to development and everything.

Then during the lockdown phase, I again contacted a senior and he told me that okay you have done enough development go do LeetCode. Again this LeetCode comes up. Okay I have to do LeetCode.

But one advice which he gave me which I gave to my juniors againWhen you start doing something like this such as LeetCode which is a difficult platform to work upon start with top 50 or top 100 easy questions. Only easy questions. Don’t go into any medium level questions or don’t do topic wise at that point of time. If you get a question on trees go to GFG (GeeksForGeeks) read about it and solve that but only confine yourself to a particular question and solve it.

As for my activity in 2023, I have this habit of setting up goals for myself. So my goal for 2023 was to get that LeetCode t-shirt. So that is when I was like I have to do LeetCode daily questions every day. So I used to set up a timer at 9.30 or any time every day and I used to have a widget of the list on my home screen so that I never missed a day of that LeetCode daily questions. Or sometimes I even used to give contests and all just for the fun because in 2023 I did not have any sort of burden on me to get an internship or a full-time offer. I already had those offers. So it was just for fun. But it was mostly because I had that goal in mind. So this is one thing I would advise to others also,

“Don’t do anything just randomly, pick up a goal. Just say my goal for this week is to do this. So that is how you’ll get that motivation.”

You have also been a runner-up at Smart India National Hackathon. Now hackathons tend to be overwhelming for beginners as people get intimidated by the problem statements and are unable to figure out how to choose them. Especially SIH, which has close to 200 problem statements. Can you advise on that?

So this SIH thing, it would have not been possible without my team members. So a huge shout out to them. And about hackathons, my journey with hackathons has not been a very good one. I’ll be very frank about it. Initially, whenever I made teams, we used to start with a very positive attitude that yes, “is baar phod denge”. And somehow something happened in between and we couldn’t finish it and or maybe we finished it in such a haste or something. Or maybe every member is not putting in the equal efforts. You’re getting frustrated. It was the time of lockdown and we were not able to contact anyone and things like that. But for hackathons, if you feel intimidated about the problem statement or the kind of competition, there’s a lot of competition in India only, not anywhere else in the world. You can go to a website known as Devpost where hackathons are also held. But it’s not very common for Indian people. There every week, MLH also organizes a hackathon.

So number one, you can start with small hackathons. Number two, any hackathon that you are a part of, even if your team is not contributing enough, it’s not collaborating in a good way, make sure that you complete the project. If you have that mindset that even if that’s only you who has to take the whole burden and complete the project, be that person, be the bigger person in the team and complete the project.

With these two things, you can just start off with hackathons, tackle the problem statement, go with it. About SIH, in SIH yes, there are a lot of problem statements. You need to find one. In hackathons don’t try to learn about certain tech or new skills. For that, it’s better to make projects. You can take a problem statement from hackathon, make a project in your own time. That can be something. When you’re saturated about what project should I make, go to a hackathon, check out the problem statements, create a project. But when you’re working in a hackathon and you have the intention to go win that hackathon, then pick up a problem statement in which you’re comfortable already, in which you’re confident that you can create something. And don’t go too much out of your comfort zone when it comes to hackathons. But when you’re creating projects, you can go out of your comfort zone and learn new skills and everything. But in hackathons, you’re going there to win. So you need to be prepared with everything.

When it comes to SIH, pick up a problem statement in which you think you’re comfortable enough, in which you feel you have certain skill which is not very common with other students, just pick that. So if you have done a project which is different from others and which also happens to be in the 200 problem statement will be great.

Next comes the part of pitching. It’s basically like the short presentation or something you have to submit. So, first of all don’t move out from the the confined number of slides which they have prescribed. The pitch is really important. You have to show that you know the problem statement and you are already prepared with the approach that you are taking and some sort of prototype or something that you have already built about the project. Then they’ll understand that you have already started working on it. Don’t go very technical, don’t get into a lot of technical details because the engineers who are judging are having 10 to 15 years of experience. They don’t know much about something which is going on right now. So don’t go into that depth, just give a high-level view of your project. But that should be enough for them to understand “ki ha yeh team bana legi”.

During my SIH I was not able to go onsite, my team members went. So from their experience what i can tell is to prepare your project beforehand because over there during the first day they’ll talk to you and they’ll give you more suggestions so it should not be like that you are completing your project and incorporating their suggestions. So prepare it beforehand and show them that you are making it at that point of time. Thus be prepared with the project and incorporate their suggestions. Secondly be ready to face questions and don’t be intimidated or overwhelmed by it because they are going to ask questions to all the other teams as well. And thirdly give a great presentation. A great presentation is what matters over there. They might see your implementation, but if it’s a 30 minute presentation you will show your implementation for only 10 minutes and for the rest 20 minutes you will show your research and knwoledge. Show that you looked for alternative ideas, and explain why youc ame up with your ideat. And that’s how you can do well in a science presentation. This is really important, have good communication with the people who have come for evaluation.

You mentioned that you prefer the black terminal window over the divs of the website. Could you elaborate on that?

So this is more of my inability to create good front-end than my love for the terminal. I can work on the front-end, and I have created standalone React applications. But it’s like really bad code, it just runs. It runs good but if an engineer comes to edit the code he won’t be able to make heads or tails out of it.

Front-end is also a very good area to explore, but it’s just not for me. Apart from that, I heard someone say that they like to see the results in a very fast fashion. Okay, some people don’t like DSA because DSA does not show results quickly. It’s like you can only see the green tick, that’s it. But if you’re creating a website or creating a mobile application, you can quickly show your friends. But I like when I show my friends the results on the terminal because that scares them. It’s just a difference of opinion, difference of perspective.

I have immense respect for front-end. For me personally, I think front-end is far more difficult because I am not able to do it. If I do more projects, of course, I’ll be able to do better in that. But yeah, I like back-end more. People have patience to do front-end. My friends are into UI UX, they are really doing great, but no, I can’t pull that. it’s just a personal preference, and I have immense respect. They have a lot of patience, but for me, debugging on the console and scaring my friends is a much, much better thing.

What advice or mantra would you suggest for our junior readers to handle under-confidence and peer pressure?

It’s good to face an interviewer and see how much you have grown over the years. Are you able to sell yourself? Are you able to tell the interviewer about your whole potential in those 30 minutes to one hour of interview? I would advise you just go and give interviews even if you feel underprepared. A lot of people feel that they’re underprepared.

Just keep in mind that the interviewer lives 1000 km away. He won’t track you down and make fun of you. He won’t create an Instagram meme about you. Just don’t. It’s OK.

If you feel that you are not confident enough about all that, just go and give the interview. If you are hired, you will receive payment for the first month before you mess things up. So, be confident and face the challenge. Just don’t make yourself feel underconfident because if you’re underconfident in front of the interviewer, they’re not going to hire you. It’s very important to be confident.

As for peer pressure, It’s important to prioritize taking care of yourself. It’s perfectly okay to decline invitations to parties or calls if you need to. If you can manage your time in a way that works for you, then that’s great.

What I used to feel about myself is that people around me are much smarter than me. And if they can solve a particular question in one hour, then it will take me two hours. But I’m going to give those two hours.

Yes, they can prepare for the exams in just one day. But I need to take a week to prepare. Therefore, I will take a week off to make sure that I am fully prepared. I won’t go out for that week. I won’t participate in group calls or activities that might hinder my progress, so it’s okay to be selfish and prioritize my needs.

And if you have a good group of friends, they’ll stay by your side when you’re preparing. Everybody will prepare together. Make such friends who are sitting with you to do coding. For example, there are code forces rounds that happen around 8. If your friends are the type to push you, they will encourage you to join them for early dinner so that you can participate in the round that starts at 8 PM as the round lasts for about two hours. But, If you are in a group where some individuals tend to make excuses like ‘we can’t do it now, we’ll do it later’, you need to be aware of when to establish boundaries because they might be smart enough but that might not work for you. It’s important to recognize when to maintain a safe space for yourself. And if you’re not smart enough, then you have to be hardworking enough. Too much of Gyan?

What was your way of balancing academics with upskilling?

For every semester, pick up a priority. Some people say that they can’t handle self-learning because of academics. But if you think about it, there are just four months in a semester, out of which two months are very hectic related to academics, that is during minors and majors. Apart from that, two months are completely free for you at the start of the semester and after midterm exams, you often have a lot of available time. Set a goal for each day. This is one thing I did. I had an app over which I used to write all my tasks for that particular day. And anyhow, I used to complete that task. Because it used to get red when it was postponed for the next day. So that used to give me some OCD.

So yeah, plan your day. It might be possible that every day is not as productive as the other days. But you need to have that passion. Because it’s just about giving your all for a few months and you’ll start seeing results.

if you feel a semester is too long to plan for. Set a priority for a month instead. Work sincerely for your goals, because if you are not sincere about your own self, then neither God nor the world will shower luck on you. You don’t have to wait for luck to be in your Favor. Don’t blame college placements or the lack of interview calls. If you don’t get any interview calls, try cold mailing. Reach out to 100 people and at least two of them will reply.

But set goals and priorities. If you feel you are not able to follow it, then create your timetable During busy days, follow a schedule like a railway timetable by allocating specific times for meals and tasks. If you prefer a traditional approach, write a list. I usually stick notes around my room as reminders of tasks to do, and the feeling of checking them off is amazing.

Just have priorities and be passionate about it. When we come to this college, most of us have broken dreams of not getting into the IITs. But utilise this opportunity to the best. We can be better than the person we were in our previous phase by making the most out of this phase. Try changing your perspective for a little while. Its just about maximum 1 year of intense “mehnat”. After that it’s all going to be good.

Interviewed by Anant Maheshwari and Krishi Agrawal

Transcripted by Kshitija Giradkar, Aarush Singh, and Khushi Mangla

Co-ordinated by Ayush Jha

Check out Shambhavi Shandilya’s Medium profile here.

--

--

Uthaan IIITM
Uthaan IIITM

Written by Uthaan IIITM

Uthaan is the Journalism and Recreational Club of Atal Bihari Vajpayee Indian Institute of Information Technology and Management (IIITM) Gwalior.

No responses yet