by Tatiana Doyle
Looking to land a software engineering internship? Here are some thoughts to help you.
A note: this post is simply meant to share advice I wish I’d gotten.
If you are a college student looking for a software engineering internship for the summer or just wondering what it’s like to look for one, this article is for you!
During my sophomore year of college, I was pretty sure I wanted to be a software engineer. I’d taken the two introductory classes at my college and loved them, and was in a higher level class that I was enjoying. So I hoped to land a software engineering internship in the summer that would allow me to gain industry experience and improve my skills.
Not knowing how to approach this, I didn’t start looking until the spring. Starting in January, I applied to over 60 companies online and received at least 20 automated rejections. I had two technical interviews (both of which went disastrously) and ended up working a job that had nothing to do with software engineering.
My mistakes were:
- Not starting until the spring
- Not utilizing my network or trying to grow it
- Not preparing for technical interviews
- Not doing any side projects
In my junior year, I was determined to do better. I networked as much as I could, invested time in practicing for technical and behavioral interviews, and took every interview I could get. I felt my biggest problem was getting my foot in the door . My resume was getting lost among thousands of others in the online application void. Nobody had any reason to give my application a second look.
After my failure last year, I spent a lot of time researching strategies for landing an internship as a software engineer. I came up with four takeaways, which I learned from my mistakes:
- Start early
- Connections are your most important tool
- You must prepare for technical interviews
- Side projects transform your resume from good to great
The first thing I had to do was pick which companies I wanted to target. I started by listing all the companies whose products I used and enjoyed, and then searching “software engineering intern” on the Glassdoor jobs search and sifting through those listings for companies whose products I liked, had heard good things about, or whose job postings sounded interesting.
The recruiting season kicks off in August/September. I would recommend starting in August/early September, or October at the latest.
A lot of big companies (if that’s what you’re looking for) finish their recruiting by November/December. If you’re reaching out to friends it’s great to get an early start, for example, pre-September. If you are reading this article in the spring, it’s not too late! You can still apply all the strategies below and have a great chance of getting an internship.
Here’s a summary of people you can reach out to get your foot in the door, so to speak.
- Alumni who work at the company you want to work at
- Friends/classmates who interned at that company
- Friends of friends who work at that company
Initially Reaching Out
As a college student, I felt as if I didn’t have any connections. Connections seemed like something real adults had, not me. But this turned out to be completely false.
Firstly, I knew a few alumni that now worked at companies that I wanted to work at. Second, I discovered the power of LinkedIn as a tool for getting the most out of my network.
My first step in using my connections was to reach out to people I already knew that worked as software engineers at the companies I was interested in. For me, it was easier to ask for time from people I already knew.
If any of your classmates/friends interned at these companies, try reaching out to them. They can often refer you to a recruiter at that company. Reaching out to people who work full time at these companies is also valuable.
I usually reached out to them via Facebook messenger, and asked if they had 15 minutes for a phone call to chat about their work. It’s important that you limit the ask to 15 minutes — it’s a small ask and doesn’t feel like a big favor for the person you’re calling.
It’s also important that you don’t lead by asking them to help you get a job. People don’t like to help people they don’t know, and approaching them this way will likely make them uncomfortable. Since the people I messaged already knew me, they all said yes. I’ll get into what to say on this type of call later.
My second step was to get on LinkedIn. Make sure you fill out your LinkedIn profile with as much information as you can — treat it as a second resume. I then began the process of reaching out via LinkedIn to people that I didn’t know at all. It went something like this.
- I would go to the LinkedIn page of a company I was interested in working at, and click on the link to see all employees of that company on LinkedIn.
2. I then scrolled down to the Schools filter and typed in my university.
I then get a list of university alumni who work at the company I am interested in. People who you have something in common with are much more likely to be willing to take time out of their day to talk with you or help you.
3. Hit “Connect” and then “Add a note” and ask them to chat on the phone. My typical note looks something like this:
In my note, I explain both why I’m contacting them and my “ask” — a 15 minute phone call — in just a few sentences. Keep it short, friendly, and to the point (LinkedIn doesn’t allow you to go over 300 characters anyway).
4. Wait for them to respond! Many people may never get back to you, and some will respond immediately or within days. I usually reached out to around 5 people a week, since a decent amount of people simply don’t check or use LinkedIn. I would advise against reaching out to multiple people from the same company at once, since it’s slightly redundant.
Beyond reaching out to people in your college network, reach out to your parent’s friends if they work in tech, your friend’s friends, etc. If you see someone on LinkedIn that you’re connected to through a friend, ask your friend to introduce you to that person.
Getting on the Phone
This type of phone call where you talk to someone about their work is generally called an “informational interview”. But calling it an “interview” makes it sound much scarier than it is. Once you have a couple of these phone calls, it gets a lot easier.
I found these calls to be some of the most helpful things I did during my internship search . They helped me figure out what kind of company I wanted to work at, how to prepare for the technical interview, and what areas of software engineering I wanted to explore further.
It can be hard to know what to ask at first, so here’s a couple of the questions I asked during many of these phone calls:
- What is the culture like at X company?
- Is there an emphasis on work-life balance?
- How much do people hang out outside of work?
- Is the culture transparent or more secretive?
- What do you enjoy about working at X company?
- Is there anything you don’t enjoy, or things you’re trying to change?
- What is it like to be a female engineer at X company?
- Is it easy to switch teams and try new things?
- What is your team working on?
- How did you end up at X company? What made you choose this company over other companies?
- How did you get into your particular area of Computer Science (ex. machine learning, databases, etc.) and what are some resources for learning more about it?
- What are internships like at your company?
Questions like these can be a great way to get a better understanding of what it’s like to work at the company. Informational interviews can be great even if you’re not looking for a job. They can help you learn more about the industry.
But if you’re looking for an internship, there’s one question I asked during every phone call that was especially helpful: How can I stand out in the intern application process for X company? This question is great because the person you’re on the phone with will give you advice on how to get an internship there, and potentially offer to connect you with a recruiter or even refer you to their company.
Besides reaching out to connections or potential connections, make sure you use your school’s career fair! Those companies are already there because they want to recruit students from your school.
Something that was also really helpful to me was (if you’re female-identifying) submitting my resume to the Grace Hopper resume database. I had a lot of companies contact me through that database. Additionally, if a professor you know well has contacts or friends in the industry, it may be worth asking them for help making a connection.
Technical Interviews & Coding Challenges
Enough has been said about the technical interview that I don’t feel the need to write a long post on this. But, I have a couple things that I feel are important:
- Coding challenges are a thing. This is a HackerRank-style assessment where you are given a coding problem and a limited amount of time to solve it, e.g. an hour. They are usually a pre-screening for a phone interview. Practice doing HackerRank problems on a time limit to simulate this environment so that you are prepared for these.
- Personally, I’ve found Python to be a fantastic language for interviews. It keeps you from having to implement low-level type data structures or functions, and is very fast to write and debug in. Some of the most useful things in Python to know for interviews (in my opinion) are defaultdict, sorting with a lambda, string splitting/reversing/joining, and built-in data types.
- Try not to psych yourself out! I had two final rounds that I thought I failed immediately after, both of which I actually ended up getting offers for.
- Ask questions in your technical interviews! It shows you’re interested in the company. I found this Medium article to be especially helpful on that front.
- Try to figure out an area of Computer Science you are particularly interested in, because I was asked this in nearly every interview.
- Take as many interviews/coding challenges as you can, if you have the time. The only way to get better is to practice!
Beyond that, here are some helpful resources on preparing for the coding interview.
- Palantir’s guide
- The book Cracking the Coding Interview
- This blog post
- This list of resources
- There’s a new site called intervewing.io that pairs you up with a software engineer to practice technical interviews — I haven’t tried it, but it seems really cool.
Personally, I prepared for technical interviews by doing problems from Cracking the Coding Interview, Python problems on HackerRank, and by doing as many technical interviews as I could. There really is no substitute for practice — I was far less nervous in my fifth interview than I was in my first.
Having side projects that you did on your own time and out of class is the best way to show that you’re passionate about what you do. Honestly, it is frustrating that there exists a standard where the fact that you’re already majoring in Computer Science isn’t enough to show you love it.
Regardless, side projects are a great way to learn as well as a way to build your resume. For me, doing side projects has been rewarding . I’ve been able to build my skill set while practicing implementing something on my own. Here and here are lists of side project ideas to get you started. I would recommend doing a side project that you’re passionate about, rather than one you’re just using to build your resume. It will be a lot more enjoyable and you’ll learn a lot more.
My school has something called JumboCode that does coding work for nonprofits. My experience being on a team as part of that club has been one of my favorite experiences. Working on a team as well as a fantastic learning experience, technically speaking. If your school has something similar, definitely consider getting involved if it interests you.
By using all the above strategies, I was able to get an internship at Square, which was my top choice! A friend of mine who worked at Square last year put me in touch with the current recruiter, which eventually resulted in my offer.
Getting a software engineering internship is hard.
It’s especially hard when you don’t have a lot of companies trying to recruit from your school, or you don’t have a lot of family connections. But if you go to a school that has Computer Science graduates, at least some of them are likely to be working at companies you’re interested in! And by virtue of having attended your college, they’re often willing to help you.
This post is meant to make public all the things I wish people had told me earlier, in hopes of helping anyone in search of a software engineering internship.
If you have any questions, feel free to reach out to me via email at tatidoyle01[at]gmail.com!
A big thank you to the many people who have helped me proofread and edit this article!