What No One Tells You About the Technical Interview

Samuel Alarco
8 min readFeb 6, 2021

Tips on interviewing for a summer internship at Google

I recently received and accepted an offer for a STEP internship at Google, summer 2021. For me and for many students of computer science and software engineering, this is nothing short of a dream come true. What is the wall stopping so many students from obtaining this career-changing opportunity? For anyone that has at any moment thought of trying to get an internship in tech, the answer comes quickly: the dreaded technical interviews.

After 1 year of preparation for the summer internship hiring period, I am no stranger to the stress of preparing for the tech interviews. And yet, with the right amount of preparation, you can easily turn the interview from a source of chills and panic to an opportunity to shine in front of your interviewer and obtain an internship at your dream company.

The STEP internship interview process consists of 2 back-to-back 45-minute technical interviews. Having received an offer to intern at Google, I am very conscious that I would not have gotten to where I am without the help and advice of many friends and strangers. Therefore, I would like to share my own tips and lessons learned from this process. I will be concentrating on the tech interview. If you want a more comprehensive view of the whole recruiting process for an internship at Google, I have written a longer article here, so do not hesitate to check it out!

Ok, that is enough introduction, let’s get to the tips!

1. Start Preparing Early ⏰

This one seems obvious, and yet many people still miss it! If you are a student like me, you know how difficult it is to find time to prepare for coding challenges and interviews, especially if it’s a year away and you don’t even know if you will get an interview… Do not let that stop you!

It is much easier and rewarding to spend 1 hour doing 1 or 2 problems a day rather than cramming 12 hours a day during the week before the interview. Make it part of your daily routine.

Photo by Prophsee Journals on Unsplash

Aim at doing 1 problem a day during the summer before you apply (if you are applying in the fall). At first, do not focus on timing. Understand the problem and its solutions well, including the alternative solutions you did not think about. For this, webpages that include well-written answers such as Leetcode are very useful. In the beginning, you might be lost and find it very difficult to solve problems within 1 hr. Do not be discouraged! I promise from my own experience that you will get better in time. You only need to persevere!

Making it a routine and doing a little every day helps prevent burn out.

2. My Personal List of Resources 📃

Everyone has their own style and methods. Here is my personal list of resources, most of them free, that helped me to prepare and pass the coding interview.

  • Leetcode: This is a classic. I personally like the large collection of problems with answers they have, organized by difficulty. They also have a curated list of interview questions, again organized by difficulty. I recommend starting with those, since they will give you exposure to a wide variety of concepts and techniques. Best of all, you can get all of this for free!
  • Algoexpert.io: I am not affiliated in any way to Algoexpert. However, it would not be sincere of me if I did not give them the right credit for my interview preparation. Algoexpert (owned by an ex-Google and ex-Facebook engineer) has a very well-curated collection of interview problems. Most importantly, each problem comes with a video explaining the approach to solving it and a coding walk-through. This was essential for me, as it gave me material to discuss the question with the interviewer during the interview. As we will see, this turns out to be an essential skill to have during the interview. The service is paid, but after obtaining a paid internship at Google it turned out to be a very profitable investment in the long term 😃.
  • interviews.schools: This is a hidden gem for interview preparation. Sadly, I did not find this website until the last weeks preceding the interview. It was still priceless to finish my preparation. It basically is a curated collection of interview problems, taken from leetcode but fully explained and linked to the respective techniques and theory. It is very cleanly organized and again best of all, completely free! This webpage also includes advice on things like salary negotiation and CV building.
Photo by Thought Catalog on Unsplash

3. Prepare to Talk Talk Talk 💬

Many people stop reading above and never get to this final tip. They do not pass the technical interview, and worst of all they do not even know why! They aced the problems, coded perfectly optimal solutions, all within the time limits. What did they do wrong?

Unfortunately, and this is what many people do not really understand, the tech interview is not only about your technical skills. The interview is trying to assess far more than that. The interviewer is trying to evaluate you as a future member of a team, a future co-worker, a future senior engineer. This is where your communication abilities come into play. At every stage of your interview, you should be communicating with your interviewers, communicating your ideas, your approach to the problem at hand, the possible benefits and drawbacks of your solution. If you wrote something, you should be able to explain why you wrote it. In one word: talk.

One way to think about it is this: the interview is not an exam in which you receive a problem, silently solve it on a whiteboard or shared doc, and then give a solution back. The interview is a collaborative process. While this also depends on the quality of your interviewer, you know you are doing well on the interview if you start feeling like you are solving the problem together with the interviewer, if your interviewer starts feeling like a co-worker. You should obviously be the most active person in this process, but do not get nervous if your interviewer gives you tips or suggests a different approach. They are supposed to do this, and part of the interview is evaluating whether you are able to receive feedback and collaborate with a more senior engineer ie. your interviewer!

Also, if you are stuck, tell your interviewer! The interviewer can at any point give you a tip to unstuck you, but you make their job very difficult if you are not communicating with them in the first place, and they do not realize in what part of your thought process you made the wrong assumption.

As a serious introvert, I am aware that it can be difficult to talk while you code, especially if you are nervous and there’s a time limit and you don’t even know if your solution is right… Luckily, there are some practical tips you can follow to keep the conversation flowing and create the best impression:

  1. Practice talking or mumbling through your code during your daily practice. I tried as much as possible to talk to myself while coding, explaining to myself what I was doing. This might seem dumb, and your room buddy might think you are crazy, but trust me, it pays out. It gets you used to vocalizing your thoughts and talking while coding, which does not come naturally to most people. Debugging your code out loud is also a skill that needs to be practiced.
  2. Do some mock interviews before the actual interview arrives. You can practice with a friend, alumni of your university (preferably if they already have interview experience), or through services such as Pram. I did two mock interviews before my real ones at Google. I think this is essential to make the real interview less of a shock and get valuable actionable feedback on your communication skills.
  3. Talk through your approach before starting to code. The interviewer might in fact ask you to do this if you forget, but it will leave a very good impression if you do it without being asked to. After thinking through the problem for a minute or two, just walk the interviewer through your ideas and the approach you are thinking of. This also allows the interviewer to guide you in another direction if they think it appropriate, or to confirm your chosen approach if they feel it is promising!
Photo by Headway on Unsplash

Final Thoughts

The technical interview is possibly the most intimidating part of the general software engineering recruiting process, be it for a summer internship or for an actual full-time job. However, I hope that this article helped to clear some doubts and aided you on your preparation journey. While many of these tips are based on my experience interviewing with Google, they are certainly applicable to many other tech companies. For a more comprehensive view of the hiring process for the Google STEP Internship, check out my other article here!

Photo by Alexander Milo on Unsplash

There is much more to be said, and I will write more articles sharing my experiences with Google and other companies. If you want to share this journey with me, or if this article helped you, please like and follow! This path is walked better accompanied, and I am always eager to meet fellow students and professionals sharing my interests and career goals.

Oh and if you are preparing for an upcoming interview, good luck!! If you are researching and reading articles like this it means you are on a good path to success.

--

--

Samuel Alarco

The sharing of ideas is the foundation of our civilization