Getting a SWE Internship, Part 1
As I approached my junior year, I had never had a software engineering internship in the tech industry before, and I really wanted to get an internship at a big or medium-sized tech company for the upcoming summer. I did some research on how to approach recruiting, and then I went for it. I ended up getting offers at Facebook, Microsoft, and Palantir, among other companies. The tech recruiting process can feel intimidating, but it’s actually pretty straightforward, and once you understand it you can definitely take the steps to get your first internship too! In this 3-part series, I’ll walk you through the steps I took that led to that outcome.
In this post, I’ll talk about how to strengthen your application so that you get an interview. In my next post, I’ll talk about how to nail the interview. Finally, I’ll discuss how to navigate choosing an internship post-offer. This series is based on my own experiences, which were heavily influenced by older students, and by Cracking the Coding Interview. I’ll be referencing the book several times, and it’s very worth checking it out!
The first step to getting an interview is having a strong resume. There are two components to this - building the material that will go on your resume, and then actually writing the resume.
Generating strong material for your resume
- Course selection - take relevant computer science courses, and especially ones with projects. Math courses also look good. For software engineering internships, GPA doesn’t seem to be too significant - a general rule of thumb I heard is that if it’s above 3.0, put it on, if it’s below, keep it off. If your major GPA is higher than your average GPA, and you’re majoring in a relevant technical field, it’s fine to just put your major GPA on.
- Work on side projects - working on projects will improve your programming skills, and also show initiative to recruiters.
- Look for opportunities at your school or in your community relevant to software engineering. For example, Dartmouth, my undergraduate institution, has the DALI lab. You could also teach yourself basic website development skills and then build a website for an organization that you’re a part of. Don’t hesitate to apply for opportunities even if you don’t feel like you know enough - obviously, be honest about your experiences, but once you’re on the job there is so much that you can teach yourself.
- Seek out SWE internships at companies that might feel less prestigious or desirable, since having any SWE internship experiences on your resume will make it a lot easier to get future interviews.
How to write your resume
- Try not to go over 1 page. Remove high school activities and jobs as needed.
- Include detailed descriptions on exactly what you did and highlight your contributions. Try to quantify them if possible (ex. I optimized this code to make it 4.5x faster).
- Add a section on programming projects. This can involve research projects, class projects, and side projects. State the technologies that you used and your contributions, if this was a group project.
- Be prepared to discuss anything you put on your resume, or to be asked questions relevant to any programming languages or frameworks that you say you know on your resume. You can differentiate these by level of experience.
- Only include important technical skills, so that they stand out. Many people include things such as Microsoft Office that everyone should know, and that aren’t very impressive compared to programming languages/frameworks.
Applying to Jobs
Once you have a resume, it’s time to actually apply to jobs. Applying online definitely can lead to interviews, and you should send your resume to as many places as you can, especially when trying to get your first internship. That being said, there are many other application approaches that often will result in a better shot at an interview.
- Career fairs at your university: These are great because you can actually talk to recruiters, learn about the company, and indicate your interest. At a career fair, an actual human being will see your resume, instead of an automated bot. If you can get a recruiter’s email at the career fair, you have a point of contact to follow up with, which is much better than submitting a resume online and waiting to receive an automated message.
- Career fairs at conferences: Conferences such as Grace Hopper or Out4U have huge career fairs that are incredible places to snag an internship or full time offer, but come prepared to interview on the spot.
- Smaller companies: use websites such as AngelList to find startups in locations/fields that you’re interested in. Interning at a startup is an incredible opportunity to learn a lot, and startups tend to have a later recruitment cycle.
- LinkedIn: Keep your profile updated and indicate that you are searching for jobs, and recruiters will sometimes reach out to you. I’ve also had success emailing alumni from my college to ask about their career paths, and sometimes alumni will even be willing to refer you.
- Referrals: If you have friends or know older students who have worked for tech companies, don’t be afraid to ask if they would be willing to write you a referral. Some tech companies will incentivize employees to get referrals, so many people are very happy to help. Of course, it’s the decision of whoever you ask whether they decide to give you a referral or not, but
Also, a note on cover letters - I didn’t write any cover letters, but some small/medium sized tech companies might like to see more personalized interest.