When to apply
If you're applying for summer internships at big or well-known companies, you need to look into applying in September/October-ish the year before, which is the start of the recruiting season. Yes, this is early. Yes, this is too early. Yes, it's ridiculous. The more you wait, the more likely slots will get filled up. That's why we recommend applying when recruiting season starts. If you wait until January, the intern class could be full.
Note that the intern class could be full. It won't necessarily be. If, for any reason, you are applying after New Years, there are still plenty of chances of getting an internship. We only mean that you could lose out on a few opportunities. Although getting an internship at top companies is competitive, there are probably more jobs than applicants in the industry overall. We're lucky to be in tech because of how many job opportunities there are!
How long a company will accept summer internship application is very circumstantial and will change from year to year. There's no general rule that will always be true. However, understanding the situation of different companies could guide you in targeting your efforts:
- Medium and large tech companies. Well-known tech companies such as Google, Microsoft, Dropbox, Airbnb, etc have dedicated recruiting teams, with each individual recruiters assigned to different universities. Due to their large size, their dedicated internship programs, and the large number of applicants, they need to plan well in advance. This often means that they will have a certain number of intern slots (rough or exact), sometimes split amongst different universities. They may leave a few spare slots for late applicants but don't count on it. You should probably apply to those when they start coming to campus in September/October. They tend to be in a hurry to recruit since they compete against each other for the best students.
- Startups. (Check out AngelList). They could be the opposite. Their business is very uncertain and their hiring capacity, needs, projects, business goals, etc, tend to change randomly and quickly. They might only know for sure if they can afford an intern when it's a month or two before the internship would start. While not all startups hire interns, it's worth reaching out to them. We often hear stories of students getting a job at a cool startup at the last minute, right after a slot opened up because the startup got funding (also at the last minute).
- Smaller companies. There are many respectable companies, tech or non-tech, that only have a few dozen employees and can only hire a few interns. They don't have the resources to go campus recruiting and prefer to avoid competing head-on with big-name companies. You may have to send out a lot of emails but many of them will hire later. A lot of these companies might be local, so it's useful to search for tech companies in particular cities.
- Non-tech companies. Similarly, there are many companies that hire interns for programming positions but don't have the prestige of large tech companies. Think banks for example. They might even have a lot of internships slots, but they won't get filled as quickly. Keep in mind, just because a company isn't famous in tech doesn't mean it doesn't have good learning opportunities!
- "We don't have a fixed number of slots". Some companies will say that, and they are probably telling the truth. However, the thing you have to keep in mind is that no company has an unlimited capacity to hire interns. Even if they had an unlimited monetary budget, they still need to find full-time employees capable and willing to be intern mentors, as well as projects to give interns. For that reason, every additional intern past a certain number will strain their capacity to provide a good internship experience. I've been to a company that doesn't have an intern quota, but they become more and more picky over time. The unlimited clause is really for "just in case an amazing candidate shows up at the last minute".
Sidenote: Why do companies hire so early? This is a case of "market unraveling", discussed by economic Alvin Roth in "Who Gets What, and Why". In matching markets, there is an incentive for market participants to trade before the just a little before the market opens, when everyone starts trading. In the job market, this means both job seekers and job providers want to start "trading" (accept an offer) just a little before the market "opens" (recruiting season). The idea is that if a company gives an offer early, the applicant won't have as many competing offers and is more likely to take it. Unfortunately, this means that the recruiting season moves earlier and earlier (until it hits the starts of the school year, where it can't really move earlier than that).
Internships outside the summer
If you're applying for internships outside of the traditional summer timeline (or you live on the side of the world where summer isn't May-August but want to do your summer internship in the northern hemisphere), 4 months before is probably plenty of time. If you're a Waterloo student and have an internship for 4 months then school for 4 months, and then another internship - I'd recommend applying during the internship and not during school. Interviews during midterms are just too much. It's an amazing feeling to already have a job while watching all your peers stress out about job apps ;D
One thing to keep in mind is that companies rarely have intern positions posted on their website outside of standard intern season. But that doesn't necessarily mean they're not interested! You should ask friends for referrals, send out emails to people that work there, etc.