Finding Your First Software Internship

This guide serves as a starting point for those seeking their first software internship.

Contents

  1. Choosing Companies to Apply To
  2. Playing the Status Ladder
  3. Navigating the Interview Process
  4. Preparing for Interviews
  5. Applying Before You Feel Ready
  6. Conclusion

1. Choosing Companies to Apply To

Each company has its own set of unique attributes, such as compensation, hiring policies, and company culture. By understanding these attributes, you can focus your search on companies that align with your interests and increase your chances of receiving an offer. This knowledge will also help you better prepare for each company’s specific interview process.

To help you get started, here’s a list of company categories you should be aware of:

“Big N” Companies

“Unicorn” Startups

Growth Stage Startups

Early Stage Startups

Fortune 500 Companies

Established Tech Companies

Government Contractors

Trading Firms

Tip: If you want to dig deeper into a specific industry or company, try /r/cscareerquestions or Glassdoor.

2. Playing The Status Ladder

“If every job asks for prior work experience, how do I get work experience?”

Landing your dream internship in one attempt is unlikely. In most cases, you’ll need to build up your resume through a series of jobs. Interning at company A will make company B interested in you. Interning at company B will make company C interested in you.

If you’re starting from scratch, prioritize getting any internship. It doesn’t matter where you work, as long as it can go on your resume. This will open up doors for you. After that, focus on securing an internship at a “name brand” company – one that recruiters will recognize (“Big N”, “Unicorn”, “Large Tech”, etc.). Once you have a “name brand” internship, you’ll likely get interviews at most tech companies you apply to.

If you know you want to pursue a career path that doesn’t require “resume credentials”, don’t play the status game. For instance, if you’re certain you want to work at a small startup after graduating, you don’t need an internship at Google. Pad your resume if you want optionality, not progress toward a specific trajectory.

Example (real-world) internship trajectories:

If you’re applying for your first internship, apply to companies that hire students without experience. Your best chances lie with “Big N” companies, government contractors, and small startups. “Big N” and government contractors hire large numbers of interns each year, while small startups tend to be less known, resulting in less applicant competition. Focus on these three types of companies to maximize your chances of receiving an offer.

If your internship search is unsuccessful, don’t worry. There are many other ways to spend your summer and build your resume. You could email a professor to ask about research opportunities at your university, write software for a local student-driven startup, or contribute to an open source project. Aim for a position where you can write code.

3. The Interview Process

After submitting a job application, the response time can range from 1 day to 2 months. Recruiters will notify you about the next steps via email. The interview process typically involves the following stages:

Resume Screening

Code Screen (60 min)

Recruiter Phone Screen (15-30 min)

Technical Phone Interview (60 min)

Onsite Interview (3 hrs)

4. Preparing for Interviews

Most companies include algorithm questions in their interviews. To increase your chances of landing an internship, it is crucial to practice algorithms.

Consider using Python for your technical interviews, as it allows you to write solutions quickly and is easy to learn. However, if you are already comfortable with Java or C++, feel free to use those languages.

Two essential resources for improving your algorithm interview skills are:

For more challenging interview prep material, explore:

If you enjoy Codeforces, consider joining your school’s local ICPC team, an annual intercollegiate algorithms problem contest.

Some companies, such as Pinterest (article), have stopped asking dynamic programming (DP) questions, as they rarely appear in real-life scenarios. Practice DP problems only if you’re interviewing for a company that still asks them, like Google or Facebook.

How to Practice Technical Problems

When working through CTCI or Leetcode problems, follow these steps to maximize your learning:

  1. Write solutions on a blank sheet of paper first.
  2. If you can’t think of a solution within 15 minutes, look it up and try again.
  3. Talk through your thought process as you work (this takes practice)
  4. After you write the solution on paper, write the solution on your computer to verify that the program works. Try to get it right on the first run.

You may become frustrated with the time it takes to solve problems (I was), but persistence is key. With daily practice, you should see significant improvement within two weeks.

Practice using mock phone interviews to enhance your skills. While excelling in mock interviews can lead to real interviews, this is more common for full-time positions. As an intern, focus on using mock interviews for practice. Here are a few resources:

Interviews are imperfect measures of skill, and many factors can influence the outcome. You will inevitably fail some interviews, but the goal is to increase your success rate. You only need one company to say yes.

Example:

5. Apply Before You Think You’re Ready

Finish the first 4 chapters of CTCI and apply to most tech companies. Interviewing now is better than waiting until you feel “ready.” However, for more challenging companies or positions that require specific skillsets, study further.

Increase your visibility to recruiters by:

Ensure your resume is polished:

Apply to as many companies as possible and track your applications/interviews using a Google spreadsheet.

Avoid scheduling more than two phone interviews per day. Cluster your interviews within the same few weeks, to reduce nerves and increase leverage at the offer-negotiation stage. Prioritize less-preferred companies first to warm up for your top choices.

Students have compiled lists of popular companies to apply to, such as:

Companies follow a seasonal recruiting cycle in line with the academic calendar:

Smaller companies may recruit year-round. Internships typically last 12 weeks take place in the summer, but some are 10 or 16 weeks in length, and some take place in the spring or winter.

6. Summary