How to Ace Software Engineering Internship Interviews

Cesare De Cal
9 min readMar 23, 2021

I was lucky enough to land internship offers at places like Twitter, Spotify, and Amazon in Europe. I will share some tips I wish someone had told me years ago when I started out preparing for these interviews. I was rejected by many other companies, so I have learned lots of lessons along the way.

Before we dive right in, I’m not a recruiter or a hiring manager, so take everything I say with a grain of salt – just like you would do with anything else on the interwebz :D

First, let’s understand the psychology behind internships and why they exist.

Why do companies offer internships?

  • Internships are a low-cost, low-risk investment a company makes to find early-career talent. You get to see what working for the company is like (as well the city you’d be living in, your potential manager, the team, etc.), and the company gets to see how you perform in the role. Win-win!
  • If your internship goes well, you’ll be likely offered a full-time position to work for the company after graduation. The company hopes you will come back. After all, they have spent time and money training you in exchange for a small return. The upside for them if you come back is huge: you will onboard much faster as you are familiar with the culture, team, and processes, and you’ve already proved you are a good hire.
  • Hosting an intern as a full-time employee is a great way for them to demonstrate and hone their leadership skills, and prove to the company that they are capable of managing people. This can be useful if your intern manager wants to get promoted, or is interested in becoming a manager.
  • If the internship goes well and you’ve had a good experience at the company, you’re likely to spread the word about the internship program online and with your college friends. This means more people will apply the year after, and the company can be more selective with the applicants it chooses.

The biggest takeaway for you here is to demonstrate lots of passion for the company and role. The company is investing time and money into you, and excitement goes a long way to prove that not only you’ll be a good technical fit for the role, but that you’ll potentially stick around after graduation.

Why are internships great for you?

Aside from the incredible learning, networking, personal growth opportunity, here’s why I think it’s good to break into tech early through internships:

  • If you do well, you get a full-time returning internship offer. You have more leverage negotiating your full-time offer as well than someone else interviewing directly for a fresh grad full-time role because you’ve proven to the company that you’re valuable.
  • You can quickly out if you like the role, company, team, and company culture without making an extensive time commitment. Perhaps you join as a software engineering intern, and by working in a team you think you would be more interested in product management.
  • Internship interviews are easier than full-time interviews. And it’s great not having to interview in your last year of studies (although you probably should interview at other places and get offers if you want to negotiate your returning internship offer well).

What do companies look for in an intern? What makes a great intern?

  • Eagerness to learn
  • High coachability/humility
  • Good communication skills
  • Technical competence. It’s great if you’re good at something that other students aren’t (i.e. iOS development or React). Java, on the other hand, tends to be something that most students are familiar with.

Having experience in some niche area of software development shouldn’t be required for the bigger giants like Facebook, Amazon, and Google – possibly just a good conversation starter when it comes to the hiring manager fit call or the resume screen.

The smaller shops such as Shopify, Spotify, Twitter, and startups favor it greatly. The smaller the company, the more niche knowledge matters.

How do you get past the CV screening?

  • Have a good LinkedIn profile with a well-lit, high-resolution smiley face. This is huge and so overlooked.
  • Have a personal website with a clear software projects portfolio.
  • Be creative :) For my Spotify application, I had my personal website display my recently played songs thanks to the Spotify Web API. That was a great talking point in the interview. I also prepared a fancy cover letter.
  • Watch lots of videos on how to write a good resume. Read books, get your hands dirty. My go-to advice is 1-page, 1-column resumes, bullet-points, no summary, no self-assessment of soft skills (no “enthusiastic team player”), no self-assessed skill bars, no profile picture, no date of birth, education goes first, then skills, experience, software projects, and awards.
  • Get referrals. Get creative. Message hiring managers on Twitter.
  • Run A/B test your resume. Change a small detail about it (i.e. by adding a new project) and then see if you get a higher response rate.
  • GPA or grades barely matter, I’ve never been asked for them (except at Google & at a startup)
  • Follow up every week with recruiters once you’re past this stage. Take a proactive approach with your internship hunt.

How do you do well in technical interviews?

Aside from the usual advice (practice a ton on LeetCode, schedule mock interviews with friends or strangers on Pramp), here is what I think is useful:

  • Think out loud! Interviewers want to see how you think, so make it easy for them to say what you’re thinking out loud. This way, not only you’re showing your thought process, but you make it easy for them to chime in if you’re stuck or going off track.
  • Ask clarifying questions about the problem you are given. Many times the problem will be intentionally unclear, and the interviewer wants to see you navigate through ambiguity by gathering additional data. Again ask questions! For example, ask: Are we safe to assume the input will be always valid and non-null? Are there any time or space complexity requirements for the solution?
  • Don’t jump into coding too fast. Spend some time thinking through possible solutions. Before you start coding, check with the interviewer if they agree your solution makes sense for the problem, or if you could do better. State the time and space complexity before you jump into coding and ask for feedback.
  • Make it collaborative. Treat this interview as if it were a meeting with your future coworkers. Make it feel collaborative by using “we” when you’re thinking out loud. For example, ask: Do you think this could be a good approach or should we explore more ideas? Do you feel like we’re moving in the right direction or would you like me to think on it a little longer? Is there anything else you think we should address here?
  • Use a programming language that’s fast to write like Python or a programming language that you’re very familiar with. I failed my Google onsite because I wasn’t super familiar with the language I chose, Java, and I was later told to focus on my coding speed. I wish someone had told me to just use Python for that interview.
  • Test your solution right after you code it. Don’t make your interviewer ask you to test. Always test your code. Ask: Is it fine if we take some time to run through some sample inputs before we consider ourselves done with the problem? You could also say: I would like to test the code, but I’m checking in with you to see if we have enough time for this. What do you think?
  • Understand the metrics you’re evaluated on. These differ from company to company, but generally, it’s coding, data structure, and algorithms, design, communication, and efficiency. It’s not simply about whether you’re able to solve the problem, but how you solve it.

How do you do well in your behavioral interviews?

Here is a video by Lyft that can be helpful to understand behavioral interviews. It’s important to understand the STAR framework to do well in these interviews. And here is a video by Jeff H Sipe, ex-Google recruiter, on how to best present yourself in an interview (his channel is gold, if you watch 80% of all videos you will end up taking away so many gold nuggets).

You need to be likable. Be warm, friendly, and smile! Show excitement for the company mission, and ask lots of questions. This point alone is huge. Again, be likable! No one likes to talk with a wall.

  • Brevity is key! Limit your answers to questions to 1 or 2 minutes. I wouldn’t go over that limit – if you have more content to share then you tell the interviewer: Jane, I’m happy to dive deeper on any of the points I mentioned. You could also say: I hope that answers your question, feel free to let me know if I should expand on any specific point.
  • Prepare answers for the most commonly asked questions: Tell me about yourself. Why do you want to work here? Where do you see yourself in five years?
  • These interviews are pretty much a culture fit. You must dive deep into the company language and values. This will make it so much easier for employers to see you as a good fit for the organization.
  • For example, Spotify calls its teams “squads” and its organizations “tribes”, so use the same terms when you’re interfacing with the company.
  • Amazon puts a lot of value on its Leadership Principles, so prepare real-world examples for each of them using the STAR format.
  • Applying to Twitter? Put your Twitter handle in your cover letter and resume. Message recruiters on Twitter instead of LinkedIn. Listen to the company podcasts, learn more about them, watch a company keynote or an interview with the CEO.
  • Ask tons of questions at the end. This shows interest and that you’re curious about the role. For example, say: I tend to be super curious by nature, and I know your time is precious, but here are the questions… Feel free to stop me anytime. Just the simple fact that you are aware of their time and that you permit them to stop you anytime is huge. Lots of people haven’t developed this self-awareness.
  • Be positive. A “problem” can be reframed as a “learning opportunity”. A mistake can be reframed as an area for growth. Language matters a lot. People love to work with positive forward-looking people.
  • Don’t badmouth previous employers, colleagues, classmates, universities because employers wouldn’t want you to do the same with them.
  • Show where you messed up in the past, highlight the actions you took, and what you learned from it. The last bit is essential.
  • When they ask you where you see yourself in the future, make it clear that you are considering the company and would love to explore internship opportunities if everything goes well. They probably want to see if you’d stick around, and also if you also set goals for your growth.

I got my interview coming up! What should I do?

Prepare and practice.

  • Find out about the company’s values on the company website. What’s the company mission? You should always keep the company mission and values on top of your mind.
  • Check out the resources your recruiter sent you and websites such as Glassdoor, TeamBlind, Reddit to learn more about the interview process.
  • If you were given your interviewer's name, find out a little bit more about them. What’s their role, how long have they been at the company? This will help you make a connection with them during the interview and better craft the questions.
  • Your recruiter is your ally. If you have any questions about what to expect in the interview, as well as what resources to use to prepare, ask them. Recruiters are evaluated on the number of accepted offers, so it looks good on them if you do well.

Alright, I’ve done my interview. What’s next?

Keep a log of how it went and self-reflect:

  • What was I asked and how did I answer the question?
  • What’s my overall self-review? (Pass or no pass)
  • What’s something that went really well?
  • What’s something I need to work on in the future?
  • What questions did I ask the interviewers and what were the answers?

After the technical screen, being likable and connecting with the interviewer is the number one key to get you in. Good luck!

--

--

Cesare De Cal

Breathing tweets, craving food, writing code. Always learning.