Strategies for Landing a Tech Internship
Who I Am
I’m a third year CS major at the University of California, Santa Cruz and have landed five software engineering internship so far in my college career. I’ve found my time working professionally as a developer to be very fun and rewarding. Having the privilege to contribute to exciting projects, collaborate with brilliant colleagues, and rapidly advance my skillset has been extremely formative personally and professionally.
My motivation for writing this article is to share what I’ve learned both from research and personal experience on how to land these positions.
Disclaimer: This article will not into detail on how to craft a strong resume or pass behavioral and technical interviews. Fantastic resources on these topics include Cracking the Coding interview and CareerCup.com.
Getting Started
Looking for an internship is stressful. The task ahead of you is daunting. Convince a company to spend thousands of dollars to interview, onboard, train, and mentor you. I’ve found that most of my peers are eager to obtain these opportunities, but feel their skills are inadequate.
I had many of these self-defeating thoughts when I was searching for my first internship. I advise that you remember that as a proficient programmer you have an extremely valuable and rare skillset. Companies are desperate for engineer talent and view internships as an effective way to train and evaluate a potential future employee.
Whenever I felt like I didn’t deserve to apply to a company or email an executive — I would remind myself that you miss all the shots you don’t take.
The following section details the steps I took to plan, apply, and land these positions.
My Summer 2019 Internship Search
June
- Started making an Airtable listing all the companies I’d be interested in.July — September
- Began applying to companies and receiving (and failing) coding challenges.
- Applied to ~8–10 companies a week.October
- Completed an on-campus interview.
- Continued applying to companies.
- Began emailing managers directly.
- Started practicing for interviews in earnest.November — Early December
- Traveled to two onsite interviews.
- Accepted an offer with my target company.
Applying To Companies
Applying is the most time intensive step of this process. I’ve divided this process into three approaches.
1. Cold applying through job posting or by emailing individuals in the company.
2. Networking with companies at recruiting events.
3. Being referred by an individual in the company.
Before you start applying to companies however I highly recommend making a spreadsheet of all the companies you’re interested in and the status of your applications. This last job search I applied to close to 100 companies. There would have been no way I could have been able to track all my applications otherwise. Pictured above is a segment of my Airtable that I made to track all the companies.
When To Apply
The timetable in which companies interview and accept candidates vary greatly between organizations. Typically the more competitive and larger the company the earlier they look for interns. For summer internships, many of the largest west coast tech companies such as Microsoft, Amazon, Facebook, and Google open applications in early Fall the year prior to the summer internship.
It’s important to note that relatively few companies evaluate candidates this early. I’ve had many companies respond to my emails expressing interest in my application but requesting I reach out in January or February! I’ve found startups and other fast-paced organizations often accept candidates up until May. If you haven’t received an offer by the new year don’t worry, there are many fantastic companies that would still be interested in hiring you!
Where To Find Internships
Many companies will have job postings for internships. Searching “Software Engineering Intern” into a job search tool like Indeed, Glassdoor, and LinkedIn will yield hundreds of results. These posts will typically forward you to the company career page where you will answer questions and submit your resume. Don’t worry if you don’t have every skill they list. Often times recruiters list every technology the company uses but are more than willing to hire you if you only know a few.
Cold Emailing Employees
You’re not out of options if a company doesn’t have an internship job posting. Many companies hire their interns through referrals, connections, and in person recruiting events. If there is a company you’re interested in you can get the email of a decision maker in that company and sell yourself.
Always reach out to individuals in senior positions such as executives and managers since they have the power to accept or deny your application. Here is the template I used when cold emailing individuals. This option is time-consuming but I found the response rate much higher than applying online.
Finding The Time
Applying to companies is time consuming. It’s especially difficult when we’re currently in school or working.
Coding Challenges
Many companies will send you some type of coding challenge if they’re interested in your application. This step serves two purposes for the employer. Firstly to weed out unqualified applicants as well as to judge your coding abilities. These challenges can be difficult and require you to practice solving similar challenges on websites like Leetcode and Hackerrank. During my last job search, I stumbled at this step and did not practice enough. I failed over 10 coding challenges which lead to many rejections. Fortunately, practicing on the two previously mentioned websites is a straightforward way to improve.
Interviewing
A company is interested in hiring you! Typically you will have two types of final round interviews, onsite or over the phone. In phone interviews, you will chat with your interviewer over the phone, Google Hangouts, Skype etc. In onsite interviews, you will travel to the company’s office and conduct your interview in person. In both types of interviews, you will be asked a mix of behavioral and technical interview questions.
Utilizing resources like Cracking the Coding Interview will be extremely helpful. This article outlines the common format of these interviews. While daunting, these interviews can be a lot of fun if you go in prepared and with a positive mindset.
Offer
Congratulations! You have received an offer from a company. This is very exciting and validating of all the hard work you’ve done. I’ve cried every time I’ve received an offer .
Don’t accept your offer immediately! Companies will typically give you a week or two to decide. Additionally, it’s a bad idea to cancel any other company is until you’ve signed a formal written offer with the company. While rare, verbal offers can be easily rescinded. Additionally, consider details such as location, type of work, compensation, mentorship etc.
If you have multiple offers it can be tricky to balance different timelines. This article helped me when I was in a similar situation.
Summary
Internships are very fun and rewarding experiences. Having the opportunity to advance your skills, be paid well, and work in your major is a great opportunity. The process to obtain these positions is daunting and at times discouraging. However, with enough planning, research, and determination, you can kickstart your career as well.